我有以下Adapter
一個ListView
:我可以在listView的接收元素中添加監聽器嗎?
public class gestionAdapter extends ArrayAdapter<Sav> {
public gestionAdapter(Context context, List<Sav> savs){
super(context, 0, savs);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_gestion,parent, false);
}
Sav sav = getItem(position);
ViewHolderGestion viewHolder = (ViewHolderGestion) convertView.getTag();
if(viewHolder == null){
viewHolder = new ViewHolderGestion();
viewHolder.titreSav = (TextView) convertView.findViewById(R.id.TitreSav);
viewHolder.intervenant = (TextView) convertView.findViewById(R.id.interv);
viewHolder.client = (TextView) convertView.findViewById(R.id.cli);
viewHolder.archive = (Button) convertView.findViewById(R.id.archive);
viewHolder.actif = (Button) convertView.findViewById(R.id.actif);
convertView.setTag(viewHolder);
viewHolder.archive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "archive ", Toast.LENGTH_LONG).show();
}
});
viewHolder.actif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "actif ", Toast.LENGTH_LONG).show();
}
});
}
viewHolder.titreSav.setText(sav.getTitre());
viewHolder.intervenant.setText(sav.getIntervenant());
viewHolder.client.setText(sav.getNomClient());
return convertView;
}
}
你可能注意到了,有兩個buttons
每一行。目前,我已將聽衆置於Adapter
但是是否可以將這些聽衆置於接收視圖中,以便我可以使用這些按鈕來刷新我的視圖?
目前我已經試過使View公共的一些功能,但我並不滿意這個解決方案。
我完全不理解你,但你也可以把你的根佈局的監聽器。您的適配器中的ViewHolder模式邏輯也不正確。 – Amir
看來我無法訪問從顯示的ListView – RiddlerNewComer
您可以把聽者根佈局的活動這些元素,把聽者的ListView控件 someListView.setOnItemClickListener(新OnItemClickListener(){ @覆蓋 公共無效onItemClick( AdapterView > arg0,View arg1,int arg2, long arg3){TODO自動生成方法存根 Log.d(「############」,「Items」+ MoreItems [ arg2]); } }); – Rafal