您的位置:首页 > 其它

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

2017-01-16 21:15 274 查看

声明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.setOnItemClickLi
4000
stener(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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: