Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅第一排';s视图(按钮)可在自定义列表视图中单击,android_Android_Android Listview - Fatal编程技术网

仅第一排';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();
    }
    });