0

私はアンドロイド開発の初心者で、意図に関する問題に直面しています。画面にアイテムのリストが表示されており、リスト内のアイテムをクリックすると別のアクティビティを呼び出したいと考えています。

リスト項目のクリック時に別のアクティビティを呼び出すために、次のコードを使用しています -

@Override
    protected void onListItemClick(ListView lv, View view, int position, long id){
        super.onListItemClick(lv, view, position, id);
        //code to call activity to edit the task
        Intent intent = new Intent(this, ReminderModificationActivity.class);
        intent.putExtra("RowId", id);
        Log.i(TAG, "row clickd --> " + id);
        startActivityForResult(intent, ACTIVITY_EDIT);

    }

この上記のコードでは、クリックされたリスト項目の適切な ID を 1、2、または 3 として取得しています。

Log.i(TAG, "getIntent --> " + getIntent().getExtras().getInt("RowId") );

        //code to check what row id have been passed
        if(getIntent() != null) {                                        
            Bundle extras = getIntent().getExtras();                     
            int mRowId = extras != null ? extras.getInt("RowId") : -1;    
            // Do stuff with the row id here
            if(mRowId != -1){
                //code if RowId valid

            }
        } 

Log.i で受け取った値は常に 0 です。ここで何が欠けているかについて誰か助けてもらえますか? 私はこのプラットフォームにまったく慣れていないので、詳しく教えてください。

ans -インテントをキャプチャする際のint 。

前もってありがとう、レイ

4

1 に答える 1

0

バンドルの代わりに長い値を渡す Intent.putExtra を使用しないのはなぜですか?

次に、あなたはただ

intent.putExtra("RowId", id);

で取得します

long incomingID = getLongExtra("RowId", -1);

ちなみに、両方のコードでデータをできるだけ長く扱うようにしてください

于 2012-10-27T14:19:05.197 に答える