リストビューでチェックオフリストを実現しようとしています。私のリストビューには、文字列とその横にあるチェックボックスが含まれています。現在、arraylist には合計 15 個のアイテムがあります。リスト項目をクリックすると、結果onclicklistener
が開始されます。camera activity
写真の撮影に成功すると、クリックされた行の ID とRESULT_OK
. 写真が正常に撮影されたことを示すチェックボックスを除いて、現在すべてが機能しています。
onActivityResult
コードをメソッドに配置する必要があると想定しています。私は本当にここで途方に暮れています。
これが私がこれまでに持っているものです。
これは私のカスタム arrayadapter であり、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()
。