我问的原始问题是关于我的长id值,但是因为你们是对的,你说我有正确的ID我删除了我的错误。谢谢您的帮助。阅读我的答案以获取更多细节。
1)我的应用程序使用本地android SQLiteDatabase并有三个表。我对其中两个表没有问题,但事实证明我的第三个表是因为我的列声明是public static final string COLUMN_NAME = "name";
等而提出了一些问题。
我的活动没有扩展ListActivity,因此我可以为每个活动提供自定义列表和列表视图。
我通过listview = (ListView) findViewById(R.id.myList);
获取我的listview并通过listview.setOnItemClickListener(ListListener);
向listview添加一个监听器然后这是我的列表监听器的方法:
OnItemClickListener ListListener = new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View v, int position,
final long id)
{
AlertDialog.Builder dialog = new AlertDialog.Builder(ExerciseList.this)
.setIcon(R.drawable.edit)
.setTitle("Update Selected Exercise")
.setMessage("Would you like to update the current Exercise? Click continue to proceed.")
.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
final Intent i = new Intent(getBaseContext(), AddExercise.class);
i.putExtra(ExerciseDbAdapter.KEY_ROW_ID, id);
startActivityForResult(i, EDIT_EXERCISE);
}
})
.setNegativeButton("Back", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialog.show();
}
};
以上方法仅适用于列表项单击侦听器!
答案 0 :(得分:0)
Intent.putExtra("Key",value) is right way to put the data in intent so
i.putExtra("INSERT THE KEY HERE",ExerciseDbAdapter.KEY_ROW_ID, id);
答案 1 :(得分:0)
好的,所以我发现我的应用程序存在问题,你没事。我从应用程序中获取了正确的行ID。
然而,我通过我的意图传递了另一个数据成员,导致setRowIdFromIntent()
方法将ID从null
更改为0
。或者从null
到0
。
基本上无论我传递的值是什么,因为我传递的数据成员,我从0
方法设置为setRowIdFromIntent()
。因此,上面的代码几乎与我的问题无关。
因此,如果您想要使用点击列表监听器,上面的那个肯定会帮助您将正确的ID传递给您的新活动。再次抱歉,我有这种困惑。再次感谢所有其他帖子!