【问题标题】:How to setOnclick ImageView from listview inside adapter.java如何从adapter.java中的listview设置Onclick ImageView
【发布时间】:2018-09-13 23:37:55
【问题描述】:

我的问题是关于“如何从 ListView 设置 OnClick ImageView”

Adapter.java

public class Adapter extends BaseAdapter implements OnClickListener{

    Context context;
    ArrayList<Contact> list;
    LayoutInflater inflater;

    public Adapter(Context context, ArrayList<Contact> list) {
       super();
       this.context = context;
       this.list = list;
       this.inflater = 
       LayoutInflater.from(context);
    }

    public View getView(int arg0, View arg1, ViewGroup arg2) {
        ContactView pv=null;
        if(arg1==null)
        {
           arg1= inflater.inflate(R.layout.additem,  null);
           pv = new ContactView();
           pv.iv=(ImageView) arg1.findViewById(R.id.imageView1);
           pv.name=(TextView) arg1.findViewById(R.id.textView1); 
           pv.number=(CheckedTextView) arg1.findViewById(R.id.checkedTextView1);
           pv.message=(ImageView) arg1.findViewById(R.id.imageView2);
           arg1.setTag(pv); 
       }    
       else 
       {    
           pv=(ContactView) arg1.getTag();
           pv.iv.setImageURI( 
           list.get(arg0).getImage());       
           pv.name.setText( list.get(arg0).getName());
           pv.number.setText( String.valueOf(list.get(arg0).getNumber())); 
           pv.message=(ImageView) 
           arg1.findViewById( R.id.imageView2);
           pv.message.setOnClickListener( this);
           return arg1;
       }
    }

    static class ContactView{
       ImageView iv;
       TextView name;
       CheckedTextView number; 
       ImageView message;
    }
}

当我从 listview 中设置 OnClick 消息(ImageView)时,它会说

“致命异常:主要”

“无法启动活动”

“java.lang.NullPointerException”

.
MainActivity.java

ArrayList<Contact> list = new ArrayList<Contact>();
Adapter adapter;
ImageView message;

protected void onCreate(Bundle savedInstanceState) {
    this.lv = (ListView) this.findViewById(R.id.listView1);

    this.adapter=new MyAdapter(this,list);
    this.lv.setAdapter(adapter);

}

public void onClick(View arg0) {
    // TODO Auto-generated method stub 
    Toast.makeText(this, "sample", Toast.LENGTH_SHORT).show();
}

有人可以帮助我如何从 listview 设置 OnClick 消息(ImageView)?谢谢

【问题讨论】:

    标签: java android listview imageview baseadapter


    【解决方案1】:

    我认为您应该在适配器内设置 de click... 在每个项目上,活动在开始时不会找到该视图

    类似

    pv.message.setClickable(true);
    pv.message.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(arg0.getContext(), "sample", Toast.LENGTH_SHORT).show();
            }
        });
    

    【讨论】:

      【解决方案2】:

      试试看,

      holder.vehicle_address.setOnClickListener(new View.OnClickListener() { @覆盖 public void onClick(View v) {

                  Toast.makeText(context,"Click",Toast.LENGTH_SHORT).show();
              }
          });
      

      【讨论】:

      • 干得好,亲爱的。
      【解决方案3】:

      试试:pv.message.setOnClickListener(v -&gt; {});。 或者:

      pv.message.setOnClickListener(new View.OnClickListener() {
          @Override
          public void OnClick(View v) {
              // Your Code
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2015-12-14
        • 1970-01-01
        • 2013-04-19
        • 2014-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-02
        相关资源
        最近更新 更多