each item in list to take user to new EditItemActivity int editingItemPosition = 0; ((ListView) findViewById(R.id.lvItems)).setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 1) pass EditItemActivity string to be edited Intent i = new Intent(MainActivity.this, EditItemActivity.class); i.putExtra("oldItem", items.get(position)); // 2) save position of item clicked on (to update the correct item later) editingItemPosition = position; startActivityForResult(i, REQUEST_CODE); } }); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { // 1) grab updated string and update it in the list of items String newItem = data.getExtras().getString("item"); items.set(editingItemPosition, newItem); itemsAdapter.notifyDataSetChanged(); } } MainActivity