public class Activity_Main extends BaseActivity implements RadioGroup.OnCheckedChangeListener {
private RadioGroup mTabRg;
private FragmentTabAdapter tabAdapter;
private List<Fragment> fragmentList;
private Dialog_Update dialogUpdate;
private int curCheckPos = 0;
private ImageView imgScan;
@Override
protected void setConvertView(Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_main, null);
}
@Override
protected void findViewById() {
mTabRg = (RadioGroup) findViewById(R.id.main_rgs);
imgScan = findViewById(R.id.imgScan);
}
@Override
protected void setListener() {
mTabRg.setOnCheckedChangeListener(this);
imgScan.setOnClickListener(this);
}
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId) {
case R.id.radio_button1:
curCheckPos = 0;
tabAdapter.setIndexSelected(0);
break;
case R.id.radio_button2:
if (Constants.isLogin(mContext)) {
curCheckPos = 1;
tabAdapter.setIndexSelected(1);
} else {
if (curCheckPos == 0) {
mTabRg.check(R.id.radio_button1);
}
Intent intent = new Intent(mContext, Activity_Login.class);
startActivity(intent);
}
break;
case R.id.radio_button3:
if (Constants.isLogin(mContext)) {
curCheckPos = 2;
tabAdapter.setIndexSelected(2);
} else {
if (curCheckPos == 0) {
mTabRg.check(R.id.radio_button1);
}
Intent intent = new Intent(mContext, Activity_Login.class);
startActivity(intent);
}
break;
}
}
@Override
public void onClick(View v) {
if (!Constants.isLogin(mContext)) {
Intent intent = new Intent(mContext, Activity_Login.class);
startActivity(intent);
return;
}
Intent intent = new Intent(mContext, Activity_Scan.class);
startActivity(intent);
}
@Override
protected void initData() {
//注册极光推送
// if (Constants.isLogin(mContext)){
// Jpush_Init jpushInit = new Jpush_Init(mContext, Constants.getUserId(mContext));
// }
if (!Utils.isServiceRunning(this, getPackageName() + Constants.APP_UPDATE_TAG)) {
getUpdateHttp();
}
//注册升级接听广播
IntentFilter filter = new IntentFilter();
filter.addAction(getPackageName() + Constants.APP_UPDATE_TAG);
registerReceiver(receiver, filter);
//填充主页
fragmentInit();
}
private void fragmentInit() {
fragmentList = new ArrayList<>();
fragmentList.add(new Fragment_Home());
fragmentList.add(new Fragment_Mall());
fragmentList.add(new Fragment_Me());
tabAdapter = new FragmentTabAdapter(getSupportFragmentManager(), fragmentList, R.id.tab_content, 0);
}
public void intentToFragmentMall(String id) {
mTabRg.check(R.id.radio_button2);
Fragment_Mall fragmentMall = (Fragment_Mall) fragmentList.get(1);
fragmentMall.setCheck(id);
}
private void getUpdateHttp() {
MyHttpUtils.updateAPP(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String data) {
// “ID”:0,“AppName”:“”,“VersionName”:“”,“VersionCode”:0,“AppSize”:0,“Url”:“”,“Context”:“”,"
if (HttpCallback.RESPONSE_SUCCESS == code) {
JSONObject jsonObject = JSONObject.parseObject(data);
if (Integer.parseInt(jsonObject.getString("VersionCode")) > Utils.getVersionCode(Activity_Main.this)) {
//检测升级,升级弹框
dialogUpdate = new Dialog_Update(mContext);
dialogUpdate.dialog(jsonObject.getString("Context"), jsonObject.getString("Url"));
}
// dialogUpdate = new Dialog_Update(mContext);
// dialogUpdate.dialog(jsonObject.getString(“Context”), “http://download.lvmachengshi.com/lvma114.apk”);
}
}
});
}
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//android 8.0判断
if (Build.VERSION.SDK_INT >= 26) {
//来判断应用是否有权限安装apk
boolean installAllowed = getPackageManager().canRequestPackageInstalls();
//有权限
if (installAllowed) {
//安装apk
installApk();
} else {
startInstallPermissionSettingActivity();
}
} else {
installApk();
}
}
};
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity() {
Uri packageURI = Uri.parse("package:" + getPackageName());
//注意这个是8.0新API
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 10086);
}
private void installApk() {
/********* 下载完成,点击安装 ***********/
Intent installIntent = new Intent(Intent.ACTION_VIEW);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
installIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK);
//判断版本是否在7.0以上
Uri apkUri =
FileProvider.getUriForFile(this,
getPackageName() + ".myprovider",
new File(Constants.PATH_APP_NATIVE));
//添加这一句表示对目标应用临时授权该Uri所代表的文件
installIntent.setDataAndType(apkUri, "application/vnd.android.package-archive");
} else {
installIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
installIntent.setDataAndType(Uri.fromFile(new File(Constants.PATH_APP_NATIVE)),
"application/vnd.android.package-archive");
}
startActivity(installIntent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 10086) {
installApk();//再次执行安装流程,包含权限判等
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (receiver != null) {
unregisterReceiver(receiver);
}
MyHttpUtils.cancel(MyHttpConsts.UPDATE_APP);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
exitBy2Click(); // 调用双击退出函数
return true;
}
return super.onKeyDown(keyCode, event);
}
private Boolean isExit = false;
/**
* 双击退出函数
*/
private void exitBy2Click() {
Timer tExit;
if (!isExit) {
isExit = true; // 准备退出
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
tExit = new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit = false; // 取消退出
}
}, 2000); // 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务
} else {
// 重写onkeydown,点击系统返回键直接最小化
//按返回键返回桌面
moveTaskToBack(true);
}
}
}
<?xml version="1.0" encoding="utf-8"?><FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:orientation="vertical">
<FrameLayout
android:id="@+id/tab_content"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<include layout="@layout/common_line" />
<RadioGroup
android:id="@+id/main_rgs"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_tab_height"
android:background="@color/white"
android:orientation="horizontal"
android:paddingTop="6dp">
<RadioButton
android:id="@+id/radio_button1"
style="@style/main_tab_bottom"
android:checked="true"
android:drawableTop="@drawable/main_tab_drawable_selector1"
android:text="@string/main_meau_1"
android:textColor="@drawable/main_tab_textcolor" />
<RadioButton
android:id="@+id/radio_button2"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/main_tab_drawable_selector2"
android:text="@string/main_meau_2"
android:textColor="@drawable/main_tab_textcolor"
/>
<RadioButton
android:id="@+id/radio_button3"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/main_tab_drawable_selector3"
android:text="@string/main_meau_3"
android:textColor="@drawable/main_tab_textcolor" />
</RadioGroup>
</LinearLayout>
</FrameLayout>
public class Activity_Order_Mall extends BaseActivity {
private TextView textTab1, textTabBg1, textTab2, textTabBg2, textTab3, textTabBg3, textTab4, textTabBg4;
private ViewPager viewPager;
private List<Fragment> fragmentList = new ArrayList<>();
private String flag;
@Override
protected void setConvertView(Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_order_mall, null);
}
@Override
protected void findViewById() {
imgBack = findViewById(R.id.imgBack);
titleName = findViewById(R.id.titleName);
imgTitleRight= findViewById(R.id.imgTitleRight);
imgTitleRight.setVisibility(View.VISIBLE);
imgTitleRight.setImageResource(R.drawable.img_search);
viewPager = (ViewPager) findViewById(R.id.viewPager);
textTab1 = (TextView) findViewById(R.id.textTab1);
textTabBg1 = (TextView) findViewById(R.id.textTabBg1);
textTab2 = (TextView) findViewById(R.id.textTab2);
textTabBg2 = (TextView) findViewById(R.id.textTabBg2);
textTab3 = (TextView) findViewById(R.id.textTab3);
textTabBg3 = (TextView) findViewById(R.id.textTabBg3);
textTab4 = (TextView) findViewById(R.id.textTab4);
textTabBg4= (TextView) findViewById(R.id.textTabBg4);
}
@Override
protected void setListener() {
imgBack.setOnClickListener(this);
textTab1.setOnClickListener(this);
textTab2.setOnClickListener(this);
textTab3.setOnClickListener(this);
textTab4.setOnClickListener(this);
imgTitleRight.setOnClickListener(this);
}
@Override
protected void initData() {
flag = getIntent().getStringExtra("flag");
if ("1".equals(flag)){
titleName.setText("特惠订单");
}else {
titleName.setText("商城订单");
}
changeTab(textTab1, textTabBg1);
// 状态 订单状态 0.全部 1.待发货 2.待收货 3.已完成
for (int i = 0; i < 4; i++) {
Bundle data3 = new Bundle();
data3.putString(“state”, i+“”);
data3.putString(“flag”, flag);
Fragment_Order_Mall newfragment3 = new Fragment_Order_Mall();
newfragment3.setArguments(data3);
fragmentList.add(newfragment3);
}
// 给ViewPager设置适配器
viewPager.setAdapter(new FragmentVpAdapter(getSupportFragmentManager(), fragmentList));
viewPager.addOnPageChangeListener(new MyOnPageChangeListener());// 页面变化时的监听器
viewPager.setOffscreenPageLimit(fragmentList.size());
}
public class MyOnPageChangeListener implements ViewPager.OnPageChangeListener {
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
changeTab(textTab1, textTabBg1);
} else if (position == 1) {
changeTab(textTab2, textTabBg2);
}else if (position == 2) {
changeTab(textTab3, textTabBg3);
}else if (position == 3) {
changeTab(textTab4, textTabBg4);
}
}
}
private void changeTab(TextView textTab, TextView textTabBg) {
textTab1.setSelected(false);
textTabBg1.setSelected(false);
textTab1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
textTab2.setSelected(false);
textTabBg2.setSelected(false);
textTab2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
textTab3.setSelected(false);
textTabBg3.setSelected(false);
textTab3.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
textTab4.setSelected(false);
textTabBg4.setSelected(false);
textTab4.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
textTab.setSelected(true);
textTabBg.setSelected(true);
textTab.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
}
@Override
public void onClick(View v) {
if (v == imgBack) {
this.finish();
} else if (v == textTab1) {
viewPager.setCurrentItem(0);
} else if (v == textTab2) {
viewPager.setCurrentItem(1);
}else if (v == textTab3) {
viewPager.setCurrentItem(2);
}else if (v == textTab4) {
viewPager.setCurrentItem(3);
}else if (v == imgTitleRight) {
Intent intent = new Intent(mContext, Activity_Order_Mall_Search.class);
intent.putExtra("flag",flag);
startActivity(intent);
}
}
}
<?xml version="1.0" encoding="utf-8"?><include layout="@layout/common_title" />
<LinearLayout
android:id="@+id/layoutTab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textTab1"
style="@style/style_tab_text"
android:text="全部" />
<TextView
android:id="@+id/textTabBg1"
style="@style/style_tab_textbg"
android:layout_width="30dp" />
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textTab2"
style="@style/style_tab_text"
android:text="待发货" />
<TextView
android:id="@+id/textTabBg2"
style="@style/style_tab_textbg"
android:layout_width="30dp" />
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textTab3"
style="@style/style_tab_text"
android:text="待收货" />
<TextView
android:id="@+id/textTabBg3"
style="@style/style_tab_textbg"
android:layout_width="30dp" />
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textTab4"
style="@style/style_tab_text"
android:text="已完成" />
<TextView
android:id="@+id/textTabBg4"
style="@style/style_tab_textbg"
android:layout_width="30dp" />
</FrameLayout>
</LinearLayout>
<include layout="@layout/common_line" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:flipInterval="30" />
public class Fragment_Order_Mall extends BaseFragment implements OnItemClickListener {
private CommonRefreshView mRefreshView;
private Adapter_Order_Mall mAdapter;
private String state,flag;
@Override
public View initView() {
return LinearLayout.inflate(getActivity(), R.layout.fragment_common_listview, null);
}
@Override
protected void findViewById() {
mRefreshView = mRootView.findViewById(R.id.refreshView);
}
@Override
protected void setListener() {
}
@Override
protected void initData() {
Bundle bundle = this.getArguments();
state = bundle.getString("state");
flag = bundle.getString("flag");
mRefreshView.setEmptyLayoutId(R.layout.view_no_data_list);
mRefreshView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
mRefreshView.setItemDecoration(new ItemDecoration(getContext(), ContextCompat.getColor(getContext(), R.color.transparence), 0.5f, 10f));
mRefreshView.setDataHelper(new CommonRefreshView.DataHelper<OrderBean>() {
@Override
public RefreshAdapter<OrderBean> getAdapter() {
if (mAdapter == null) {
mAdapter = new Adapter_Order_Mall(getContext());
mAdapter.setOnItemClickListener(Fragment_Order_Mall.this);
}
return mAdapter;
}
@Override
public void loadData(int p, HttpCallback callback) {
MyHttpUtils.mallOrderList(flag,state,"", p, callback);
}
@Override
public List<OrderBean> processData(String data) {
JSONObject jsonObject = JSONObject.parseObject(data);
return JSON.parseArray(jsonObject.getString("List"), OrderBean.class);
}
@Override
public void onRefreshSuccess(List<OrderBean> list, int count) {
}
@Override
public void onRefreshFailure() {
}
@Override
public void onLoadMoreSuccess(List<OrderBean> loadItemList, int loadItemCount) {
}
@Override
public void onLoadMoreFailure() {
}
});
if (mRefreshView != null) {
mRefreshView.initData();
}
}
@Override
public void onClick(View v) {
}
@Override
public void onItemClick(OrderBean bean, int position) {
if (!ClickUtil.canClick()) {
return;
}
Intent intent = new Intent(getContext(), Activity_Order_Mall_Detail.class);
intent.putExtra("flag",flag);
intent.putExtra("id",bean.getID());
startActivity(intent);
}
@Override
public void onDestroyView() {
super.onDestroyView();
MyHttpUtils.cancel(MyHttpConsts.MALL_ORDER);
}
}