GridView实现简单的应用启动器Launcher

来源:互联网 发布:老电视接网络电视 编辑:程序博客网 时间:2024/05/29 10:27

声明GridView

<GridView    android:id="@+id/gridView"    android:layout_width="match_parent"    android:layout_height="wrap_content"    <!-- 水平间距 -->    android:horizontalSpacing="10dp"    <!-- 每行的数量 -->    android:numColumns="3"    <!-- 垂直间距 -->    android:verticalSpacing="10dp" ></GridView>

定义数据源,定义适配器,定义ViewBinder

private List<Map<String, Object>> data;private List<AppBean> src;private List<AppBean> sdSrc;private SimpleAdapter simpleAdapter;simpleAdapter = new SimpleAdapter(    this,     data,     R.layout.items,     new String[] { "appIcon", "appName" },    new int[] { R.id.appIcon, R.id.appName });SimpleAdapter.ViewBinder viewBinder = new SimpleAdapter.ViewBinder() {    @Override    public boolean setViewValue(View view, Object data, String textRepresentation) {        if (view instanceof ImageView) {            ImageView iv = (ImageView) view;            iv.setImageDrawable((Drawable) data);            return true;        }        return false;    }};simpleAdapter.setViewBinder(viewBinder);gridView.setAdapter(simpleAdapter);

绑定监听器

public class MainActivity extends Activity implements OnItemClickListenergridView.setOnItemClickListener(this);@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {    // TODO Auto-generated method stub    String packageName = sdSrc.get(position).getAppPackageName();    Toast.makeText(this, packageName, Toast.LENGTH_SHORT).show();    Log.i("TAG", packageName);    Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName);    // 这里如果intent为空,就说名没有安装要跳转的应用    if (intent != null) {        // 传递参数,还有接收参数也是跟Activity和Activity传参数一样        // intent.putExtra("name", "郑松岚");        startActivity(intent);    } else {        // 没有安装要跳转的app应用        //Toast.makeText(this, "没安装此APP", Toast.LENGTH_SHORT).show();    }}
0 0
原创粉丝点击