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

声明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 OnItemClickListener

gridView.setOnItemClickListener(this);


@Override
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值