仅第一排';s视图(按钮)可在自定义列表视图中单击,android
这是我的适配器类:-仅第一排';s视图(按钮)可在自定义列表视图中单击,android,android,android-listview,Android,Android Listview,这是我的适配器类:- public class CustomAdapter extends BaseAdapter { Context c; CustomAdapter(Context c) { this.c=c; } @Override public int getCount() { // TODO Auto-generated method s
public class CustomAdapter extends BaseAdapter {
Context c;
CustomAdapter(Context c)
{
this.c=c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 3;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final int pos=position;
LayoutInflater inflater=LayoutInflater.from(c);
View v=inflater.inflate(R.layout.layout_list_item, parent, false);
ImageButton image_button=v.findViewById(R.id.imagebutton);
image_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(c, "Image Button clicked:" + pos, Toast.LENGTH_SHORT).show();
}
});
return v;
}
}
如何使所有图像按钮都可单击?我尝试搜索答案,根据这里给出的答案:我尝试了,但只有我的第一行按钮是可点击的。请帮忙 在自定义适配器构造函数中
LayoutInflater mInflater;
CustomAdapter(Context c)
{
mInflater = LayoutInflater.from(c);
// initialize inflater in the constructor.
// need not initialize everytime getView is called.
}
使用视图保持器
然后在你的活动课上
ListView lv = (ListView) findViewById(R.id.listview);
CustomAdapter cus = new CustomAdapter(this);
lv.setAdapter(cus);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View itemView, int itemPosition, long itemId)
{
Toast.makeText(ActivityName.this, "Image Button clicked:" + itemPosition, Toast.LENGTH_SHORT).show();
}
});
ListView lv=(ListView)findviewbyd(R.id.ListView);
CustomAdapter cus=新的CustomAdapter(此);
低压设置适配器(cus);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView列表视图、View itemView、int itemPosition、long itemId)
{
Toast.makeText(ActivityName.this,“单击图像按钮:”+itemPosition,Toast.LENGTH_SHORT).show();
}
});
如“Listview世界-2010”所述,请参见下面的链接,展示如何在android中将viewholder类与自定义Listview一起使用,希望这对您有所帮助。您应该按照Romain Guy的文档“Listview世界-2010”使用viewholder类。您在哪里尝试了我的答案?它有用吗?这是一个1小时长的视频,现在还在看。谢谢你的帮助。我看完后会给你回电话,然后找到解决办法。干杯,但我想在单击图像按钮时更改其图像资源。那么我如何访问我的imagebutton来调用image_button.setImageResource(drawable)?在视频中,他们也提到了这个ViewHolder类,但到目前为止,他们还没有告诉如何在单击事件时访问视图。仍在观看…为什么不试试上面的内容?@NewOverHere,OnItemClick中的itemView
是您在适配器中返回的视图。您可以使用itemviewbyd.findviewbyd(R.id.imagebutton)
获取imagebutton
,然后从那里更改图像。
ListView lv = (ListView) findViewById(R.id.listview);
CustomAdapter cus = new CustomAdapter(this);
lv.setAdapter(cus);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View itemView, int itemPosition, long itemId)
{
Toast.makeText(ActivityName.this, "Image Button clicked:" + itemPosition, Toast.LENGTH_SHORT).show();
}
});