美文网首页
天龙八部3806

天龙八部3806

作者: 八一3806 | 来源:发表于2019-02-01 15:37 被阅读12次
    public class MainActivity extends BaseActivity {

        @BindView(R.id.rcv)

        RecyclerView mRcv;

        private List<ActivityInfo> mActivityInfoList;

        //    List<String> list = new ArrayList<>();

        @Override

        protected int getLayout() {

            return R.layout.activity_main;

        }

        @Override

        protected void initView() {

            initToolBar(mToolbar, true, "Study");

            initData();

            mRcv.setLayoutManager(new LinearLayoutManager(this));

            mRcv.setHasFixedSize(true);

            Adapter adapter = new Adapter();

            mRcv.setAdapter(adapter);

        }

        private void initData() {

            PackageManager pm = getPackageManager();

            try {

                String packageName = getPackageName();

                PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);

                mActivityInfoList = new ArrayList<>();

                for (ActivityInfo activityInfo : packageInfo.activities) {

                    if (!activityInfo.name.contains(getPackageName())) continue;

                    mActivityInfoList.add(activityInfo);

                }

                Collections.sort(mActivityInfoList, new Comparator<ActivityInfo>() {

                    @Override

                    public int compare(ActivityInfo o1, ActivityInfo o2) {

                        return o1.name.substring(o1.name.lastIndexOf(".") + 1, o1.name.length()).replace("Activity", "")

                                .compareTo(o2.name.substring(o2.name.lastIndexOf(".") + 1, o2.name.length()).replace("Activity", ""));

                    }

                });

            } catch (PackageManager.NameNotFoundException e) {

            }

        }

        class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

            @Override

            public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

                Button btn = new Button(MainActivity.this);

                ViewGroup.LayoutParams params =

                        new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,

                                ViewGroup.LayoutParams.WRAP_CONTENT);

                btn.setLayoutParams(params);

                btn.setPadding(0, 10, 0, 10);

                return new RecyclerView.ViewHolder(btn) {

                };

            }

            @Override

            public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {

                final Button btn = (Button) holder.itemView;

                final ActivityInfo activityInfo = mActivityInfoList.get(position);

                String name = activityInfo.name;

                name = name.substring(name.lastIndexOf(".") + 1, name.length()).replace("Activity", "");

                btn.setText(name);

                btn.setOnClickListener(new View.OnClickListener() {

                    @Override

                    public void onClick(View v) {

                        ClassLoader classLoader = getClassLoader();

                        try {

                            Class<?> aClass = classLoader.loadClass(activityInfo.name);

                            startActivity(new Intent(MainActivity.this, aClass));

                        } catch (ClassNotFoundException e) {

                        }

                    }

                });

            }

            @Override

            public int getItemCount() {

                return mActivityInfoList.size();

            }

        }

        @Override

        public boolean onKeyDown(int keyCode, KeyEvent event) {

            if (keyCode == KeyEvent.KEYCODE_BACK) {

                moveTaskToBack(false);

                return true;

            }

            return super.onKeyDown(keyCode, event);

        }

        @Override

        protected void onCreate(@Nullable Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            Log.w("Fire", "MainActivity:127行:onCreate");

        }

    相关文章

      网友评论

          本文标题:天龙八部3806

          本文链接:https://www.haomeiwen.com/subject/lywksqtx.html