gpt4 book ai didi

android - 在自定义 ListView 中只有第一行的 View (按钮)是可点击的,android

转载 作者:行者123 更新时间:2023-11-29 21:40:19 27 4
gpt4 key购买 nike

这是我的适配器类:-

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;
}

}

如何使所有图像按钮都可点击?我尝试搜索答案并按照此处给出的答案:how to make an imageview clickable in an listview我试过了,但只有我的第一行按钮是可点击的。请帮忙。

最佳答案

在您的自定义适配器构造函数中

    LayoutInflater mInflater;  
CustomAdapter(Context c)
{
mInflater = LayoutInflater.from(c);
// initialize inflater in the constructor.
// need not initialize everytime getView is called.
}

使用 View 持有者

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

      static class ViewHolder
{
ImageButton ib;
}
@Override
public View getView(int position, View item, ViewGroup parent) {
ViewHolder holder;
if(item == null){
item = mInflater.inflate(R.layout.elementos_lista_temas, null);
holder = new ViewHolder();
holder.ib = (ImageButton) item.findViewById(R.id.imagebutton);
item.setTag(holder);
}
else{
holder = (ViewHolder)item.getTag();
}
return item;
}

然后在你的 Activity 课上

 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();
}
});

关于android - 在自定义 ListView 中只有第一行的 View (按钮)是可点击的,android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com