Android 使用自定义ArrayAdapter的GridView
也许只是出于好奇,我问错了问题。我通过扩展阵列适配器来创建自定义适配器。现在我想在GridView中显示它。我阅读了很多文章,发现他们只使用基本适配器来显示GridView。请告诉我这背后的逻辑是什么?我们可以用阵列适配器代替基本适配器吗?是的,我们可以Android 使用自定义ArrayAdapter的GridView,android,android-arrayadapter,baseadapter,android-gridview,Android,Android Arrayadapter,Baseadapter,Android Gridview,也许只是出于好奇,我问错了问题。我通过扩展阵列适配器来创建自定义适配器。现在我想在GridView中显示它。我阅读了很多文章,发现他们只使用基本适配器来显示GridView。请告诉我这背后的逻辑是什么?我们可以用阵列适配器代替基本适配器吗?是的,我们可以ArrayAdpter本身从BaseAdapter扩展而来。也许这会把事情弄清楚 事实上,如果您只是想在ListView或GridView中显示一些不需要任何复杂自定义适配器的内容,那么使用ArrayAdapter就更容易了。它只是一个由任意对象
ArrayAdpter
本身从BaseAdapter
扩展而来。也许这会把事情弄清楚
事实上,如果您只是想在
ListView
或GridView
中显示一些不需要任何复杂自定义适配器的内容,那么使用ArrayAdapter
就更容易了。它只是一个由任意对象数组支持的适配器 您当然可以在GridView中使用ArrayAdapter。请参见此代码示例
gridView = (GridView) findViewById(R.id.gridView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, numbers);
gridView.setAdapter(adapter);
gridView=(gridView)findViewById(R.id.gridView1);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数字);
setAdapter(适配器);
公共类GridAdapter扩展了ArrayAdapter实现了OnItemClickListener
{
上下文c;
int[]img;
字符串[]p;
公共GridAdapter(上下文上下文,int[]img1,字符串[]s1){
super(context,R.layout.forgridmain,R.id.textViewgd1,s1);
img=img1;
c=上下文;
p=s1;
}
公共视图getView(int位置、视图转换视图、视图组父视图)
{
布局充气机=(布局充气机)c.getSystemService(布局充气机服务);
ConvertView=充气机。充气(R.layout.forgridmain,父级,false);
ImageView iv1=(ImageView)ConvertView.findViewById(R.id.imageView111);
TextView tv=(TextView)ConvertView.findViewById(R.id.textViewgd1);
RelativeLayout rl=(RelativeLayout)ConvertView.findViewById(R.id.relalypout);
rl.setBackgroundColor(透明色);
iv1.setImageURI(Uri.parse(“android.resource://“+getPackageName()+”/drawable/“+img[position]);
tv.setText(p[位置]);
gv.setOnItemClickListener(ga);
返回视图;
}
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
Intent trans=新的Intent(MainActivity.this,Listed.class);
trans.putExtra(“第一”,p[arg2]);
星触觉(trans);
}
}
我使用它在网格视图中添加图像和文本。
grid view展开的布局包含一个imageView和一个textView。我的疑问是,我是否会使用扩展阵列适配器的自定义适配器,因此仅在布局文件中,我必须从ListView更改为GridView。我说得对吗?您可以对
GridView
或ListView
使用相同的适配器。因此,是的,您只需要更改布局以及调用的位置setAdapter()
。但是是否可以使用ArrayAdapter
将照片加载到GridView
?您给出的代码使用了一个simple\u list\u item\u 1
,这是一个TextView
布局。我正试图找到一种使用ArrayAdapter
的方法,但可以上载图像,而不上载文本。您可以使用自定义适配器此博客解释hanks,但该博客仅涵盖GridView
中的简单文本String
。图像是另一回事,正如我所了解的,您需要一个模型,并且要将图像更改为位图
,等等:(
public class GridAdapter extends ArrayAdapter implements OnItemClickListener
{
Context c;
int[] img;
String[] p;
public GridAdapter(Context context, int[] img1,String[] s1) {
super(context,R.layout.forgridmain,R.id.textViewgd1,s1);
img=img1;
c=context;
p=s1;
}
public View getView(int position,View ConvertView,ViewGroup parent)
{
LayoutInflater inflater=(LayoutInflater)c.getSystemService(LAYOUT_INFLATER_SERVICE);
ConvertView =inflater.inflate(R.layout.forgridmain, parent, false);
ImageView iv1=(ImageView) ConvertView.findViewById(R.id.imageView111);
TextView tv=(TextView)ConvertView.findViewById(R.id.textViewgd1);
RelativeLayout rl=(RelativeLayout)ConvertView.findViewById(R.id.relalypout);
rl.setBackgroundColor(Color.TRANSPARENT);
iv1.setImageURI(Uri.parse("android.resource://"+getPackageName()+"/drawable/"+img[position]));
tv.setText(p[position]);
gv.setOnItemClickListener(ga);
return ConvertView;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent trans=new Intent(MainActivity.this,Listed.class);
trans.putExtra("first",p[arg2]);
startActivity(trans);
}
}