Android的一些范文

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);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值