我正在尝试使用列表视图实现核对列表。我的列表视图包含一个字符串和旁边的复选框。现在,arraylist 中共有 15 个项目。当我单击一个列表项时,会onclicklistener
启动一个camera activity
结果。如果拍摄照片一切都成功,它会返回到列表,其中包含单击 和 的行的 id RESULT_OK
。我现在一切正常,除了标记照片已成功拍摄的复选框。
我假设代码需要放在onActivityResult
方法中。我在这里真的很茫然。
这是我到目前为止所拥有的。
这是我的自定义数组适配器,也是onListItemClick
我的onActivityResult
.
private class GrassAdapter extends ArrayAdapter<Grass> {
public GrassAdapter(ArrayList<Grass> grasss) {
super(getActivity(), 0, grasss);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// If we weren't given a view, inflate one
if (convertView == null) {
convertView = getActivity().getLayoutInflater()
.inflate(R.layout.fragment_grasslist, null);
}
// Configure the view for this Crime
Grass c = getItem(position);
TextView titleTextView =
(TextView)convertView.findViewById(R.id.photo_titleTextView);
titleTextView.setText(c.getName());
CheckBox solvedCheckBox =
(CheckBox)convertView.findViewById(R.id.photo_solvedCheckBox);
solvedCheckBox.setChecked(c.isChecked());
return convertView;
}
}
public void onListItemClick(ListView l, View v, int position, long id) {
Grass selectedValue = (Grass) getListAdapter().getItem(position);
//Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();
// Start CameraActivity
Intent i = new Intent(getActivity(), CameraActivity.class);
i.putExtra("ID", id);
i.putExtra("FILE_NAME", selectedValue.getName());
startActivityForResult(i, POSITION_CHECKED);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == POSITION_CHECKED) {
if (resultCode == Activity.RESULT_OK) {
int id = data.getData();
.setChecked(true);
}
}
}
现在我坚持从意图数据中获取 id。
日食说Type mismatch cannot covert from Uri to int
。
然后,一旦我找回了 id,我该如何将复选框设置为setChecked()
.