package top.littlerich.virtuallocation.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ProgressBar; import android.widget.Toast; import java.util.List; import top.littlerich.virtuallocation.R; import top.littlerich.virtuallocation.adapter.AppAdapter; import top.littlerich.virtuallocation.model.MyAppInfo; import top.littlerich.virtuallocation.util.ApkTool; import top.littlerich.virtuallocation.view.TopBanner; public class AppsActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private LinearLayoutManager mLayoutManager; AppAdapter mAppAdapter; public Handler mHandler = new Handler(); private ProgressBar mProgressBar; private TopBanner mTopbanner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_apps); initView(); bindListener(); //创建默认的线性LayoutManager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 mRecyclerView.setHasFixedSize(true); //创建并设置Adapter mAppAdapter = new AppAdapter(AppsActivity.this); mRecyclerView.setAdapter(mAppAdapter); initAppList(false); } private void bindListener() { mTopbanner.setTopBannerListener(new TopBanner.OnTopBannerListener() { @Override public void leftClick(View v) { finish(); } @Override public void rightClick(View v) { if (mProgressBar.isShown()) { Toast.makeText(AppsActivity.this, "数据未加载完成,无法过滤!", Toast.LENGTH_SHORT).show(); } else { mProgressBar.setVisibility(View.VISIBLE); initAppList(true); } } }); } private void initView() { mTopbanner = (TopBanner) findViewById(R.id.topbanner); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); mProgressBar = (ProgressBar) findViewById(R.id.pb_progressbar); mProgressBar.setVisibility(View.VISIBLE); } private void initAppList(final boolean isFilter) { new Thread() { @Override public void run() { super.run(); //扫描得到APP列表 final List<MyAppInfo> appInfos = ApkTool.scanLocalInstallAppList(AppsActivity.this.getPackageManager(), isFilter); mHandler.post(new Runnable() { @Override public void run() { mAppAdapter.setData(appInfos); runOnUiThread(new Runnable() { @Override public void run() { mProgressBar.setVisibility(View.GONE); } }); } }); } }.start(); } public static void openActivity(Context context) { Intent intent = new Intent(context, AppsActivity.class); context.startActivity(intent); } }