自定义 适配器实现 GridView 实现很简单,自定义BaseAdapter,在getView自定义item视图 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class MainActivity extends Activity { private GridView MyGridView; private int[] image = { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }; private int[] title = { R.string.a, R.string.e, R.string.g, R.string.i, R.string.o, R.string.q, R.string.r, R.string.t, R.string.u, R.string.w }; public void onCreat(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); MyGridView = (GridView) findViewById(R.id.MyGridView); ItemBaseAdapter adapter = new ItemBaseAdapter(title, image, this); MyGridView.setAdapter(adapter); MyGridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int id, long position) { Toast.makeText(MainActivity.this, "item" + (position + 1), Toast.LENGTH_LONG).show(); } }); }public class ItemBaseAdapter extends BaseAdapter { private LayoutInflater mInflater; private List<GridItem> listGridItems; public ItemBaseAdapter(int[] title, int[] image, Context context) { super(); listGridItems = new ArrayList<GridItem>(); mInflater = LayoutInflater.from(context); for (int i = 0; i < image.length; i++) { GridItem pItem = new GridItem(title[i], image[i]); listGridItems.add(pItem); } } public int getCount() { if (null != listGridItems) { return listGridItems.size(); } else { return 0; } } public Object getItem(int position) { return listGridItems.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { convertView = mInflater.inflate(R.layout.item, null); viewHolder = new ViewHolder(); viewHolder.title = (TextView) convertView.findViewById(R.id.title); viewHolder.image = (ImageView) convertView .findViewById(R.id.imageView); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.title.setText(listGridItems.get(position).getTitle()); viewHolder.image.setImageResource(listGridItems.get(position) .getImageId()); return convertView; }}class GridItem { private int titleId; private int imageId; public GridItem() { super(); } public GridItem(int titleId, int imageId) { super(); this.titleId = titleId; this.imageId = imageId; } public int getTitle() { return titleId; } public void setTitle(int title) { this.titleId = title; } public int getImageId() { return imageId; } public void setImageId(int imageId) { this.imageId = imageId; }}public class ViewHolder { public TextView title; public ImageView image;<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="4dp" android:scaleType="fitXY" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center_vertical" /></LinearLayout><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_marginTop="5dp" > <GridView android:id="@+id/MyGridView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:columnWidth="90dp" android:gravity="center" android:horizontalSpacing="10dp" android:numColumns="auto_fit" android:stretchMode="columnWidth" android:verticalSpacing="10dp" > </GridView></LinearLay>实现代码为上面 但是 程序可以运行不报错 就是没有 界面出来 说我没有 在 MainActivity里面启动这是为什么求高手 指点 自定义的适配器有问题,把Interflter改下private Context context;private int[] data; public ItemBaseAdapter(Context context,int [] data) { super(); this.context = context; this.data = data; }还有构造方法,在MainActivity里面new的是时候为ItemBaseAdapter adapter = new ItemBaseAdapter(this,image);这样应该就可以了 小倪飞刀你的那个方法不行 额 我换了种方法如下代码还是不显示啊哪里错了额package com.zhouweiyoushale;import java.util.List;import com.zhouweiyousha.R;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends Activity { private GridView MyGridView; int[] imageid = { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }; int[] nameid = { R.string.a, R.string.e, R.string.g, R.string.i, R.string.o, R.string.q, R.string.r, R.string.t, R.string.u, R.string.w }; public void onCreat(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); MyGridView = (GridView) findViewById(R.id.MyGridView); ItemBaseAdapter adapter = new ItemBaseAdapter(this); MyGridView.setAdapter(adapter); } private class ItemBaseAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mInflater; private List<GridItem> mlist; private ViewHolder holder; public ItemBaseAdapter(Context c) { super(); this.mContext = c; } private class ViewHolder { private TextView title; private ImageView imageView; } public void setList(List<GridItem> mlist) { this.mlist = mlist; mInflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() { return mlist.size(); } public Object getItem(int position) { return mlist.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { if (holder == null) { convertView = mInflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.title = (TextView) convertView.findViewById(R.id.title); holder.imageView = (ImageView) convertView .findViewById(R.id.imageView); convertView.setTag(convertView); } else { holder = (ViewHolder) convertView.getTag(); } holder.title.setText(mlist.get(position).getTitle()); holder.imageView.setImageResource(mlist.get(position).getImageId()); return convertView; } } public class GridItem { private String title; private int imageId; public GridItem(String title, int imageId) { super(); this.title = title; this.imageId = imageId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getImageId() { return imageId; } public void setImageId(int imageId) { this.imageId = imageId; } }} ListView显示不出来东西.求教 新人发帖 Linux下带资源的jar工程怎么编译 SharedPreferences开关机后被重置 求推荐两款android应用测试用真机(公司项目测试急需!!!) 我要下载,好难! android数据永久存储 锁屏状态下可以启动重力感应器吗? android fragment 求学习资料 android系统内存填充 想在onReceive里面更新AppWidget的Textview,为什么不行? 情景模式问题
private GridView MyGridView;
private int[] image = { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher };
private int[] title = { R.string.a, R.string.e, R.string.g, R.string.i,
R.string.o, R.string.q, R.string.r, R.string.t, R.string.u,
R.string.w }; public void onCreat(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
MyGridView = (GridView) findViewById(R.id.MyGridView);
ItemBaseAdapter adapter = new ItemBaseAdapter(title, image, this);
MyGridView.setAdapter(adapter);
MyGridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int id,
long position) {
Toast.makeText(MainActivity.this, "item" + (position + 1),
Toast.LENGTH_LONG).show(); }
});
}public class ItemBaseAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<GridItem> listGridItems; public ItemBaseAdapter(int[] title, int[] image, Context context) {
super();
listGridItems = new ArrayList<GridItem>();
mInflater = LayoutInflater.from(context);
for (int i = 0; i < image.length; i++) {
GridItem pItem = new GridItem(title[i], image[i]);
listGridItems.add(pItem);
}
} public int getCount() {
if (null != listGridItems) {
return listGridItems.size();
} else {
return 0;
} } public Object getItem(int position) {
return listGridItems.get(position);
} public long getItemId(int position) {
return position;
} public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item, null);
viewHolder = new ViewHolder();
viewHolder.title = (TextView) convertView.findViewById(R.id.title);
viewHolder.image = (ImageView) convertView
.findViewById(R.id.imageView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.title.setText(listGridItems.get(position).getTitle());
viewHolder.image.setImageResource(listGridItems.get(position)
.getImageId());
return convertView;
}
}
class GridItem { private int titleId;
private int imageId; public GridItem() {
super();
} public GridItem(int titleId, int imageId) {
super();
this.titleId = titleId;
this.imageId = imageId;
} public int getTitle() {
return titleId;
} public void setTitle(int title) {
this.titleId = title;
} public int getImageId() {
return imageId;
} public void setImageId(int imageId) {
this.imageId = imageId;
}}public class ViewHolder { public TextView title;
public ImageView image;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="4dp"
android:scaleType="fitXY" /> <TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_vertical" /></LinearLayout><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_marginTop="5dp" > <GridView
android:id="@+id/MyGridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView></LinearLay>
实现代码为上面 但是 程序可以运行不报错
就是没有 界面出来 说我没有 在 MainActivity里面启动这是为什么求高手 指点
private Context context;
private int[] data;
public ItemBaseAdapter(Context context,int [] data) {
super();
this.context = context;
this.data = data;
}
还有构造方法,在MainActivity里面new的是时候为
ItemBaseAdapter adapter = new ItemBaseAdapter(this,image);
这样应该就可以了
我换了种方法如下代码还是不显示啊
哪里错了额package com.zhouweiyoushale;import java.util.List;import com.zhouweiyousha.R;import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;public class MainActivity extends Activity { private GridView MyGridView;
int[] imageid = { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher };
int[] nameid = { R.string.a, R.string.e, R.string.g, R.string.i,
R.string.o, R.string.q, R.string.r, R.string.t, R.string.u,
R.string.w }; public void onCreat(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
MyGridView = (GridView) findViewById(R.id.MyGridView);
ItemBaseAdapter adapter = new ItemBaseAdapter(this);
MyGridView.setAdapter(adapter);
} private class ItemBaseAdapter extends BaseAdapter {
private Context mContext;
private LayoutInflater mInflater;
private List<GridItem> mlist;
private ViewHolder holder; public ItemBaseAdapter(Context c) {
super();
this.mContext = c;
} private class ViewHolder {
private TextView title;
private ImageView imageView;
}
public void setList(List<GridItem> mlist) {
this.mlist = mlist;
mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() {
return mlist.size();
} public Object getItem(int position) {
return mlist.get(position);
} public long getItemId(int position) {
return position;
} public View getView(int position, View convertView, ViewGroup parent) { if (holder == null) {
convertView = mInflater.inflate(R.layout.item, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.imageView = (ImageView) convertView
.findViewById(R.id.imageView);
convertView.setTag(convertView);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(mlist.get(position).getTitle());
holder.imageView.setImageResource(mlist.get(position).getImageId());
return convertView;
} } public class GridItem { private String title;
private int imageId; public GridItem(String title, int imageId) {
super();
this.title = title;
this.imageId = imageId;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public int getImageId() {
return imageId;
} public void setImageId(int imageId) {
this.imageId = imageId;
} }
}