我刚刚开始使用适配器,我尝试制作一个简单的应用程序,它显示一个可检查的字符串列表和一个按钮。单击按钮后,它会在 TextView 小部件中显示所有选中的项目。
public class Checklist extends ListActivity {
private String[] items={"Hi","My","Name","is","Adrian"};
ListView lv;
Button btn;
TextView tv;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_checklist);
lv = (ListView) findViewById(android.R.id.list);
btn = (Button) findViewById(R.id.button1);
tv = (TextView) findViewById(R.id.textView);
final ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items);
lv.setAdapter(ad);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
long[] ids = lv.getCheckedItemIds();
String s = "";
for (int i=0; i<ids.length;i++) {
s=s+ids[i]+"\n";
}
tv.setText(s);
}
});
}
}
我想出了这段代码,但不想工作,因为这个数组
long[] ids = lv.getCheckedItemIds();
实际上并没有得到任何值。所以我查看了 API,它说适配器
final ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items);
必须有稳定的 ID。然后我也检查了,适配器没有稳定的 ID
hasStableIDs() == false
我该如何解决这个问题?
谢谢