我有一个活动(Contato)
,它显示了我在我的数据库中拥有的联系人的 ListView (banco > contatos > nome, telefone (database>table>rows))
。(OK/Alterar/Delete)
当单击联系信息时,会出现一个对话框,并在我点击 Alterar 时向我显示信息和 3 按钮,它会将我发送到另一个活动(Alterarcontato),我有 2 个编辑文本和 1 个按钮。因此,当我发送到 Alterarcontato 活动时,我仍然希望获得我单击的联系人的索引,以便我可以更改它的值(使用db.update
)。
Contato.java 代码 ListView 显示对话框并具有它的索引。
ListView user = (ListView) findViewById(R.id.lvShowContatos);
//String = simple value ||| String[] = multiple values/columns
String[] campos = new String[] {"nome", "telefone"};
list = new ArrayList<String>();
c = db.query( "contatos", campos, null, null, null, null, null);
c.moveToFirst();
if(c.getCount() > 0) {
while(true) {
list.add(c.getString(c.getColumnIndex("nome")).toString());
if(!c.moveToNext()) break;
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
user.setAdapter(adapter);
user.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
reg = position;
c.moveToPosition(reg);
String nome = c.getString(c.getColumnIndex("nome"));
String telefone = c.getString(c.getColumnIndex("telefone"));
ShowMessage(nome, telefone);
}
});
Alterarcontato.java 代码,具有 editTexts 和按钮,然后更改值。
EditText nomeA = (EditText) findViewById(R.id.etNomeAlter);
EditText telefoneA = (EditText) findViewById(R.id.etTelefoneAlter);
final String nomeB = nomeA.getText().toString();
final String telefoneB = telefoneA.getText().toString();
String where = "id=?";
String[] whereArgs = {"nome", "telefone"};
ContentValues dataToInsert = new ContentValues();
dataToInsert.put("nome", nomeB);
dataToInsert.put("telefone", telefoneB);
db.update("contatos", dataToInsert, where, whereArgs);
但如 Contato.java 代码所示,我没有联系人的任何 ID,所以String where = "id=?";
有点无效,所以我如何从 Contact.java 获取索引以显示在 Alterarcontato.java 中,所以当我放一些写在里面然后点击按钮,数据库中的值会改变吗?
谢谢你。