如何在 Listview 的基本适配器中添加 setOnclick

How to add setOnclick in Base adapter for Listview

我想在列表视图中添加一个呼叫按钮。我已尝试在列表行文件中添加按钮,但无法在 Java 文件中添加 Onclick。有更多的错误发生。没有按钮还有其他方法吗?任何人都请帮助我。 谢谢。

这是适配器代码

class adapter extends BaseAdapter {
        LayoutInflater Inflater;
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return place.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @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
            Inflater=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView=Inflater.inflate(R.layout.blood_lst,null);
           Viewholder holder=new adapter.Viewholder();

            holder.pl=(TextView)convertView.findViewById(R.id.bld_name);
            holder.pl.setText(place.get(position));

            holder.in=(TextView)convertView.findViewById(R.id.bld_nm);
            holder.in.setText(incharge.get(position));

            holder.em=(TextView)convertView.findViewById(R.id.bld_em);
            holder.em.setText(email.get(position));

            holder.ph=(TextView)convertView.findViewById(R.id.bld_phn);
            holder.ph.setText(phone.get(position));

            holder.ph=(TextView)convertView.findViewById(R.id.bld_grp);
            holder.ph.setText(Bld.get(position));

            return convertView;
        }
        class Viewholder{
            TextView pl;
            TextView in;
            TextView em;
            TextView ph;
        }
    }
}

如果您只想在该列表视图中添加一个按钮,您需要将其添加到您的项目 xml 文件中,如下所示:

<Button
        android:id="@+id/btn_affiche_reu"
        android:layout_width="wrap_content"
        android:layout_height="35dp"

        android:background="@drawable/buttonstylenormal_user"

        android:textColor="@color/white"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:text="Détail"
        android:textAllCaps="false"
        android:layout_marginRight="10dp"/>

然后在您的 class 适配器中,在 getView 方法中添加这一行

Button bt = (Button) rowView.findViewById(R.id.btn_affiche_reu);

            bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //here you add your action 
                }
            });

希望对您有所帮助。

onClick 添加到 convertView,如下所示:

convertView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // do stuff here
    }
});
Instaed of writing `onClickListener()` , you write `onItemClickListener()` for your ListView. for exemple:



     listView.setOnItemClickListener(new OnItemClickListener()
    {
          @Override
          public void onItemClick(AdapterView<?> arg0, View view, int pos,

 long viewId = view.getId();
 if (viewId == R.id.button1) {
        Toast.makeText(this, "Button 1 clicked", Toast.LENGTH_SHORT).show();
    } else if (viewId == R.id.button2) {
        Toast.makeText(this, "Button 2 clicked", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "ListView clicked" + id, Toast.LENGTH_SHORT).show();
    } 


          }
    });