[英]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.