gpt4 book ai didi

java - 从android中的自定义适配器获取复选框的ID?

转载 作者:行者123 更新时间:2023-12-01 13:41:21 26 4
gpt4 key购买 nike

我有一个自定义ArrayList,如下所示。

public class sendivitesadapter extends ArrayAdapter<Item>{
private Context context;
private ArrayList<Item> items;
private qrusers qrusers;
private LayoutInflater vi;


public sendivitesadapter(Context context,ArrayList<Item> items) {
super(context, 0,items);

this.context= context;
this.qrusers =(qrusers) context;
this.items = items;
vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}
@Override
public int getCount() {
// TODO Auto-generated method stub
return super.getCount();
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;

final Item i = items.get(position);

if (i != null) {
if(i.isSection()){
SectionItem si = (SectionItem)i;
v = vi.inflate(R.layout.checkboxlist, null);

v.setOnClickListener(null);
v.setOnLongClickListener(null);
v.setLongClickable(false);

final TextView sectionView = (TextView) v.findViewById(R.id.list_item_section_text);
sectionView.setText(si.getTitle());

}else{
sendItem ei = (sendItem)i;
v = vi.inflate(R.layout.checkboxlist, null);
final TextView title = (TextView)v.findViewById(R.id.contactname);
final TextView subtitle = (TextView)v.findViewById(R.id.companyname);
final CheckBox checkBox=(CheckBox)v.findViewById(R.id.checboxlist);


if (title != null)
title.setText(ei.contactname);
if(subtitle != null)
subtitle.setText(ei.companyname);

}
}
return v;
}

它看起来像下图。

enter image description here

我的java文件如下。

@Override
protected void onPostExecute(String result) {
JSONArray jarray;

try {
jarray= new JSONArray(result);

name= new String[jarray.length()];
company=new String[jarray.length()];
for (int i=0;i<jarray.length();i++){



JSONObject jobj = jarray.getJSONObject(i);
name[i]= jobj.getString("Name");
company[i]=jobj.getString("Company");

items.add(new sendItem(name[i], company[i], checkBox));

adapter = new sendivitesadapter(qrusers.this,items);
listView.setAdapter(adapter);

现在我从网络服务中获取名称,并在 ListView 中显示它,如上所示。对于每个名字,我都会得到一个用户 ID。所以我的问题是,每当用户以任何顺序选中复选框并单击添加用户时,我都想要数组中选中的复选框的 UserID。我怎样才能实现这个目标?

最佳答案

听起来它是 View.setTag() 的一个很好的候选者。您可以将每个 CheckBox 上的标签设置为用户的 ID [当您创建它时,或分配名称和公司值]。然后,在 OnClickOnChecked 类型事件中,您可以调用 view.getTag() 来检索当前选中框的 id。

关于java - 从android中的自定义适配器获取复选框的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20743250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com