[英]How can I go back to main activity after selecting an option from my listview activity
[英]How can I manage onClick function from my custom listview adapter in main activity class
我為具有按鈕的類創建了一個自定義適配器。 在這段代碼中,我在適配器類中使用了onClick函數,但我不希望這樣。 我想從主要活動類(如listview.setOnItemClickListener)中調用它。 我怎樣才能做到這一點 ? 請注意,我希望能夠獲取按鈕或聯系人屬性的位置
public View getView(int position,View convertView,ViewGroup parent) {
Contact contact = contacts.get(position);
final ViewHolder holder ;
if (convertView == null){
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(context) ;
convertView = inflater.inflate(resource,parent,false);
holder.btnCall = convertView.findViewById(R.id.btnCall);
holder.imgAvatar = convertView.findViewById(R.id.imgAvatar);
holder.txtName = convertView.findViewById(R.id.txtName);
holder.txtPhoneNumber = convertView.findViewById(R.id.txtPhoneNumber);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
holder.txtPhoneNumber.setText(contact.getContactNumber());
holder.txtName.setText(contact.getContactName());
int imageId = contact.getGender() == 0 ? R.drawable.male : R.drawable.female;
holder.imgAvatar.setImageResource(imageId);
holder.btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, holder.txtName.getText().toString() + " "
+ holder.txtPhoneNumber.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
return convertView ;
}
private class ViewHolder{
public ImageView imgAvatar ;
public TextView txtPhoneNumber ;
public TextView txtName ;
public Button btnCall ;
}
設置適配器后,可以在主類中設置onItemClickListener,如下例所示:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item =(String)parent.getItemAtPosition(position);
list.remove(item);
adapter.notifyDataSetChanged();
}
});
將onClickListener添加到ListAdapter的getView()中的Button中。
您可以創建一個帶有要傳遞的數據參數的方法的接口,然后將該接口傳遞給適配器並在活動中實現該接口
從適配器中刪除單擊偵聽器,然后在單擊偵聽器上設置listview。 從單擊位置從聯系人數組獲取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.