ListView
各行が a と a で構成される がありtextview
ます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();
}
});