0

アップデート

私が尋ねた最初の質問は私の長いID値についてでしたが、あなたが正しいIDを持っていると言った方法で正しかったので、エラーを削除しました. 助けてくれてありがとう。詳細については私の答えを読んでください。

1) 私のアプリはローカルの Android SQLiteDatabase を使用し、3 つのテーブルがあります。2 つのテーブルには問題はありませんが、3 番目のテーブルには、列の宣言が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 が から に変更されnullました0。またはないnullから0

基本的に、渡した値が何であれ、通過したデータメンバーのために0、メソッドから設定されていました。setRowIdFromIntent()したがって、上記のコードは私の問題とはほとんど関係ありません。

したがって、クリック リスト リスナーを操作する必要がある場合は、上記のリスナーを使用すると、新しいアクティビティに正しい ID を渡すことができます。私が側に持っていたこの混乱をもう一度お詫び申し上げます。他のすべての投稿に再び感謝します!

于 2012-09-14T17:04:59.397 に答える