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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
<项目介绍> 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
资源推荐
资源详情
资源评论
收起资源包目录
基于机器学习的智慧党建平台 (229个子文件)
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
共 229 条
- 1
- 2
- 3
资源评论
机智的程序员zero
- 粉丝: 2262
- 资源: 4305
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高分毕设-基于Python+OpenCV人脸识别考勤打卡系统源代码(95分以上).zip
- opencv项目实战:使用OpenCV实现哈哈镜效果(包含源码+说明文档+教程.zip)
- 微软运行库2024.exe
- Axure RP 9是一款专业的快速原型设计工具,安装即用
- 基于JSP+Servlet+Tomcat9.0+IDEA+Mysql实现的Javaweb图书管理系统
- Toon Boom Storyboard Pro 是一款专业的故事板制作软件,专为动画制作和影视前期制作而设计
- Serif Affinity Designer 是一款专业的矢量图形设计软件,旨在提供强大的创意工具和无与伦比的性能
- dbeaver exe安装脚本
- 基于Python+OpenCV人脸识别考勤管理系统+源代码(高分毕业设计).zip
- Photoshop 900个矢量和Photoshop画笔
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功