我使用的是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