0

更新

我最初问的问题是关于我的长 id 值,但因为你们说的正确,我有正确的 id,所以我删除了我的错误。谢谢您的帮助。阅读我的答案以获取更多详细信息。

1)我的应用程序使用本地 android SQLiteDatabase 并具有三个表。我对其中两个表没有问题,但事实证明我的第三个表出现了一些问题,因为我的列声明是public static final string COLUMN_NAME = "name";等等。

我的活动没有扩展 ListActivity,因此我可以为每个活动拥有自定义列表和列表视图。

我正在获取我listview = (ListView) findViewById(R.id.myList);的列表视图并向列表视图添加一个侦听器,listview.setOnItemClickListener(ListListener);然后这是我的列表侦听器方法:

 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();  
    }
}; 

上面的方法只是一个列表项点击监听器!

4

2 回答 2

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);
于 2012-09-13T12:57:44.387 回答
0

好的,伙计们,我发现了我的应用程序的问题,你们没事。我从应用程序中获得了正确的行 ID。

然而,我通过我的意图传递了另一个数据成员,导致setRowIdFromIntent()方法将 id 从更改null0. 或从null不到0

基本上,无论我传递的值是什么,由于我传递的数据成员,它都是0从我的方法中设置的。setRowIdFromIntent()因此上面的代码几乎与我的问题无关。

所以如果你想要一个点击列表监听器,上面的监听器肯定会帮助你将正确的 id 传递给你的新活动。再次为我的困惑感到抱歉。再次感谢所有其他帖子!

于 2012-09-14T17:04:59.397 回答