我有一个从数据库填充的列表视图,在 onItemLongClick 上我有一个上下文菜单,我想用它来编辑和更新列表中的选定项目。问题是我不知道如何获取所选项目的值,以便在另一个具有带有编辑文本的表单的活动上使用它们。我希望在新活动开始时,这些字符串值位于适当的编辑文本上。这是 onItemLongClick 代码:
**REMOVED AND ADDED CORRECT CODE BELOW**
使用光标,我获取所选项目的值并将它们存储在字符串 nameOfSong 和 ArtistOfSong 中。当活动开始填充相应的编辑文本时,我该如何实现?
==EDIT== 我以这种方式使用了 SharedPreferences :
第一个活动的 OnItemLongClick:
public boolean onItemLongClick(AdapterView<?> listview, View arg1,
final int position, final long arg3) {
//bind context menu to listview' s onIitemLongClick(touch and hold)
// Get the cursor, positioned to the corresponding row in the result set
Cursor cursor = (Cursor) listview.getItemAtPosition(position);
// Get the state's capital from this row in the database.
registerForContextMenu(listView);
openContextMenu(listView);
String nameOfSong =
cursor.getString(cursor.getColumnIndexOrThrow("songname"));
String artistOfSong =
cursor.getString(cursor.getColumnIndexOrThrow("artist"));
SharedPreferences.Editor editor = prefs.edit();
editor.putString("key1", nameOfSong);
editor.putString("key2", artistOfSong);
editor.commit();
第二个活动代码:
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.update_item);
etEditSong = (EditText) findViewById(R.id.etEditSong);
etEditArtist = (EditText) findViewById(R.id.etEditArtist);
sEditDance = (Spinner) findViewById(R.id.sUpdDanceList);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
etEditSong.setText(prefs.getString("key1", null));
etEditArtist.setText(prefs.getString("key2", null));
}
现在我得到了第二个活动的线索。现在需要找到如何从上面的 editTexts 值更新数据库行。