我有 a ListView
,每行由 atextview
和 a组成checkbox
。
用户可以点击每一个TextView
,一旦他点击,DialogBox
就会向他展示一个他应该选择Yes
或的地方No
。
当他选择否时,需要自动勾选用户点击 的CheckBox
旁边。TextView
我面临的问题是,无论TextBox
用户选择哪个,CheckBox
列表的最后一个都会一直打勾,而不是选中的TextView
.
调试后我注意到这是因为getView()
适配器类的方法在最后一行停止,因此最后一行总是被选中。我尝试为每一行设置标签,以便我可以checkbox
相应地勾选,但随后都没有Checkboxes
被勾选。
对于此事,我将不胜感激。
....
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
.....
holder.text.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(final View v)
{
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("Materials");
builder.setMessage("Did you require any materials to fix this error?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
String clickedError;
clickedError = holder.text.getText().toString();
Intent intent = new Intent(mContext, Material.class);
intent.putStringArrayListExtra("materialList", materialList);
intent.putExtra("clickedError", clickedError);
intent.putExtra("repairID", repairID);
((Activity)mContext).startActivityForResult(intent, 1);
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
//holder.chk.setChecked(true); // This ticks the last checkbox of the list.
if(holder.chk.getTag() == v.getTag())
{
holder.chk.setChecked(true);
}
}
});
builder.show();
}
});