声明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) {
String packageName = sdSrc.get(position).getAppPackageName();
Toast.makeText(this, packageName, Toast.LENGTH_SHORT).show();
Log.i("TAG", packageName);
Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent != null) {
startActivity(intent);
} else {
}
}