package com.example.party.activity;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.request.RequestOptions;
import com.example.party.R;
import com.example.party.adapter.MainViewPagerAdapter;
import com.example.party.bean.User;
import com.example.party.fragment.HomeFragment;
import com.example.party.fragment.IntelliStudyFragment;
import com.example.party.fragment.MineFragment;
import com.example.party.fragment.NewsFragment;
import com.example.party.net.LoginNet;
import com.example.party.util.ImageUrl;
import com.example.party.util.UserInfo;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements HomeFragment.OnFragmentInteractionListener, IntelliStudyFragment.OnFragmentInteractionListener, MineFragment.OnFragmentInteractionListener, NewsFragment.OnFragmentInteractionListener {
private List<Fragment> fragments;//定义fragments链表
private HomeFragment homeFragment;//定义homeFragment
private IntelliStudyFragment intelliStudyFragment;
private NewsFragment newsFragment;
private MineFragment mineFragment;
private ViewPager viewPager;
private MainViewPagerAdapter mainViewPagerAdapter;//定义连接后端数据和前端显示的适配器接口adapter(这里是主界面的adapter)
private List<ImageView> imgIcons;//定义一个用来管理图形icon的链表imgIcons
private List<TextView> textTitles;//定义一个用来管理文字view的链表textTitles
private List<LinearLayout> linearLayoutList;
private LinearLayout linearHome;//定义整个Home的LinearLayout
private LinearLayout linearIntelliStudy;
private LinearLayout linearNews;
private LinearLayout linearMine;
private Gson gson;
private SharedPreferences preferences;
public static final int LOGIN_SUCCESS = 1;
public static final int LOGIN_REQUEST = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
initListener();
}
public void initData() {
//将home、intellistudy、news、mine四个fragments添加到链表fragments中
fragments = new ArrayList<>();
homeFragment = new HomeFragment();
fragments.add(homeFragment);
intelliStudyFragment = new IntelliStudyFragment();
fragments.add(intelliStudyFragment);
newsFragment = new NewsFragment();
fragments.add(newsFragment);
mineFragment = new MineFragment();
fragments.add(mineFragment);
imgIcons = new ArrayList<>();
textTitles = new ArrayList<>();
gson = new Gson();
preferences = getSharedPreferences("Party", MODE_PRIVATE);
UserInfo.loadUserInfo(preferences);
new LoginNet(new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
String response = (String) msg.obj;
if (!response.equals("error")) {
UserInfo.user.setState(User.LOGIN);
loginSuccess(UserInfo.user);
}
}
}).post(UserInfo.user.getAccount(), UserInfo.user.getPassword());
}
public void initView() {
viewPager = findViewById(R.id.main_viewPager);
mainViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager(), 1, fragments);
viewPager.setAdapter(mainViewPagerAdapter);
viewPager.setCurrentItem(0);
viewPager.setOffscreenPageLimit(3);
imgIcons.add(findViewById(R.id.icon_label_home));
imgIcons.add(findViewById(R.id.icon_label_intelli_study));
imgIcons.add(findViewById(R.id.icon_label_message));
imgIcons.add(findViewById(R.id.icon_label_mine));
textTitles.add(findViewById(R.id.text_label_home));
textTitles.add(findViewById(R.id.text_label_intelli_study));
textTitles.add(findViewById(R.id.text_label_message));
textTitles.add(findViewById(R.id.text_label_mine));
linearHome = findViewById(R.id.label_home);
linearIntelliStudy = findViewById(R.id.label_intelli_study);
linearNews = findViewById(R.id.label_message);
linearMine = findViewById(R.id.label_mine);
linearLayoutList = new ArrayList<>();
linearLayoutList.add(linearHome);
linearLayoutList.add(linearIntelliStudy);
linearLayoutList.add(linearNews);
linearLayoutList.add(linearMine);
}
public void initListener() {
linearHome.setOnClickListener(v -> {
changePage(0);
viewPager.setCurrentItem(0);
});
linearIntelliStudy.setOnClickListener(v -> {
changePage(1);
viewPager.setCurrentItem(1);
});
linearNews.setOnClickListener(v -> {
changePage(2);
viewPager.setCurrentItem(2);
});
linearMine.setOnClickListener(v -> {
changePage(3);
viewPager.setCurrentItem(3);
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int i) {
changePage(i);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
// 0xffff4400 红色
// 0xffb0b2bf 灰色
private void changePage(int i) {
for (ImageView imgIcon : imgIcons) {
imgIcon.setImageTintList(ColorStateList.valueOf(0xffb0b2bf));
}
for (TextView textTitle : textTitles) {
textTitle.setTextColor(0xffb0b2bf);
}
imgIcons.get(i).setImageTintList(ColorStateList.valueOf(0xffff4400));
textTitles.get(i).setTextColor(0xffff4400);
}
@Override
public void onFragmentInteraction(JSONObject jsonObject) {
String fragment = null;
try {
fragment = (String) jsonObject.get("action");
} catch (JSONException e) {
e.printStackTrace();
}
assert fragment != null;
if (fragment.equals("self_think")) {
startActivity(new Intent(MainActivity.this, SelfThinkActivity.class));
}
// 登录页
if (fragment.equals("sign_in")) {
Intent intent = new Intent(MainActivity.this, SignInActivity.class);
startActivityForResult(intent, MainActivity.LOGIN_REQUEST);
}
if (fragment.equals("logout")) {
deleteUser();
logout();
}
if (fragment.equals("about")) {
startActivity(new Intent(MainActivity.this, AboutActivity.class));
}
if (fragment.equals("q_and_a")) {
startActivity(new Intent(MainActivity.this, IntelliQAActivity.class));
}
if (fragment.equals("account_manage")) {
startActivity(new Intent(MainActivity.this, AccountManageActivity.class));
}
if (fragment.equals("group")) {
startActivity(new Intent(MainActivity.this, StudyActivity.class).putExtra("party_stu
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于Python机器学习的智慧党建平台源码+详细部署文档+全部数据资料(高分项目).zip基于Python机器学习的智慧党建平台源码+详细部署文档+全部数据资料(高分项目).zip基于Python机器学习的智慧党建平台源码+详细部署文档+全部数据资料(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Python机器学习的智慧党建平台源码+详细部署文档+全部数据资料(高分项目).zip (230个子文件)
gradlew.bat 2KB
.gitignore 88B
.gitignore 7B
build.gradle 2KB
build.gradle 558B
settings.gradle 15B
gradlew 5KB
bdasr_V3_20191210_81acdf5.jar 150KB
gradle-wrapper.jar 53KB
MainActivity.java 11KB
PaperQuestionActivity.java 7KB
MineFragment.java 7KB
IntelliQAActivity.java 6KB
HomeFragment.java 5KB
QuestionNet.java 5KB
IntelliStudyFragment.java 5KB
StudyGroupFragment.java 5KB
TestActivity.java 5KB
StudyActivity.java 5KB
WordCloudView.java 5KB
TestPaperFragment.java 4KB
NewsNet.java 4KB
AskNet.java 3KB
StudyMaterialsFragment.java 3KB
NewsFragment.java 3KB
TestWrongFragment.java 3KB
HomeListAdapter.java 3KB
StudyMaterialNet.java 2KB
ErrorBankRecyclerAdapter.java 2KB
AccessToken.java 2KB
ChatRecyclerAdapter.java 2KB
NewsAdapter.java 2KB
GroupRecyclerAdapter.java 2KB
SignInActivity.java 2KB
TestCheckFragment.java 2KB
User.java 2KB
PersonNet.java 2KB
StudyMaterialsAdapter.java 2KB
LoginNet.java 2KB
ErrorBankActivity.java 2KB
GroupNet.java 2KB
AccountManageActivity.java 2KB
Question.java 1KB
ASRListener.java 1KB
WebActivity.java 1KB
LoginActivity.java 994B
SelfThinkActivity.java 986B
HomeListBean.java 970B
News.java 835B
Message.java 829B
UserInfo.java 819B
AboutActivity.java 786B
NewsBean.java 714B
ExampleInstrumentedTest.java 705B
StudyViewPagerAdapter.java 701B
MainViewPagerAdapter.java 699B
StudyMaterial.java 698B
TestViewPagerAdapter.java 697B
Personas.java 652B
ChatMessage.java 579B
ImageUrl.java 431B
GlideImageLoader.java 389B
ThreeMeetingActivity.java 386B
ExampleUnitTest.java 378B
Addr.java 118B
ic_bg_homelist.jpg 1.7MB
ic_bg_common.jpg 99KB
group_bg.jpg 39KB
ic_bg_group.jpg 31KB
ic_bg_intelli.jpg 7KB
ic_bg_welcome.png 176KB
ic_bg_welcome02.png 167KB
intelli_study_materials.png 16KB
ic_intelli_worng.png 15KB
ic_intelli_paper.png 15KB
intelli_study_group.png 15KB
ic_launcher_round.png 15KB
ic_intelli_check.png 14KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher_round.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
message_receive.9.png 1KB
message_send.9.png 1KB
proguard-rules.pro 1KB
gradle.properties 1KB
gradle-wrapper.properties 232B
libbd_easr_s1_merge_normal_20151216.dat.so 2.18MB
libbd_easr_s1_merge_normal_20151216.dat.so 2.18MB
libbd_easr_s1_merge_normal_20151216.dat.so 2.18MB
libbd_easr_s1_merge_normal_20151216.dat.so 2.18MB
libbd_easr_s1_merge_normal_20151216.dat.so 2.18MB
libbdSpilWakeup.so 1.94MB
libbdSpilWakeup.so 1.9MB
libbdSpilWakeup.so 1.69MB
共 230 条
- 1
- 2
- 3
资源评论
不走小道
- 粉丝: 3207
- 资源: 5122
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BGP路由基本配置(拓扑图画好,ip配好了)
- C#的前置窗口截图工具
- 基于Flask开发后端、VUE开发前端框架,在WEB端部署YOLOv5目标检测模型
- kubekeyv3.0.13
- 基于SHT25温湿度传感器、FREERTOS、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- C# 屏幕放大取色器 随时随地获取屏幕像素颜色
- 下载安装这个软件.apk
- 【数据集详细解释及案例分析】数据集详细解释及案例分析
- 基于SHT71温湿度传感器、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- 基于TH02温湿度传感器、STM32F103C8T6、LCD1602、FREERTOS的温湿度采集系统proteus仿真设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功