我使用的是ArrayList中,自定義適配器和ListView(使用文本和圖像的顯示項目被點擊一個ListView項目時選擇)也選擇。改變具有相同的功能複選框,這樣點擊時點擊一次等等的Android的Java - 使用自定義適配器的ListView選擇一個複選框,另一行項目
一切工作正常,除了當我點擊該行的時候變爲打勾並變爲十字圖像表明該項目已被選定其工作,但問題是,另一個項目幾排下來似乎也可以選擇這不是我的本意。我看了很多帖子中關於recylerViews和ViewHolder,但他們似乎並不管用。
這裏是我的代碼的樣本;
public void myList() {
Info.add(new Stored("Name", 2000, R.drawable.pic1, "My details", false));
}
private class MyListAdapter extends ArrayAdapter<Stored> {
public MyListAdapter() {
super(MainActivity.this, R.layout.myLayout, Info);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.listlayout11, parent, false);
}
// Have defined items to be displayed here
}
private void myonClickItem() {
final ListView myList= (ListView) findViewById(R.id.listVierMain);
myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View viewClicked, int position, long id) {
Stored clickedItem1 = Info.get(position);
String currentValItem = ((TextView) viewClicked.findViewById(R.id.item5)).getText().toString();
clickedItem1.SelectedSetter(currentValItem, viewClicked);
}
// Setter used to set data to arrayList
public void SelectedSetter(String wasItClicked, View viewClicked)
{
ImageView checkedImage = (ImageView) viewClicked.findViewById(R.id.checkBoxIMG); // Create new object and assign to control
if (wasItClicked.equals("false")) {
this.itemChecked = true;
checkedImage1.setImageResource(R.drawable.CheckedPic);
}
else{
this.itemChecked = false;
checkedImage1.setImageResource(R.drawable.unCheckedPic);
}
}
我想你最好也相對於'onItemClick()'方法的代碼上傳。問題可能在那裏! – Robb1