0

次のアクティビティにエキストラを送ろうとしていますが、うまくいきません。理由がわかりません。マップにオーバーレイを設定しています。クリックすると、オーバーレイ アイテムの ID を新しいアクティビティに送信しようとすると、CursorIndexOutOfBounds が取得されます。

  public static String ROW_ID = "row_id"; // Intent extra key

 protected boolean onTap(int index) {
    // TODO Auto-generated method stub
    // return super.onTap(index);


    ROW_ID = overlayItemList.get(index).getTitle();

    Intent intent = new Intent(context, ViewContactFromMap.class);
    intent.putExtra("ROW_ID", overlayItemList.get(index).getTitle());

    Log.e("putExtra", "ROW_ID is " + ROW_ID);

    context.startActivity(intent);
    return true;
}

ここで Log.e は、クリックされた項目の ID を出力します。例 29。

しかし、次のアクティビティで Log.e を開こうとしましたが、値が 0 であり、それが CursorIndexOutOfBounds を取得する理由です。しかし、値が 29 にならないのはなぜでしょうか?

        // get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowID = extras.getLong(MyOverlays.ROW_ID);

    Log.e("ViewContactFromMap", "rowID is: " + rowID);

ハードコーディングして ROW_ID を 29 に設定しても、次のアクティビティで値 0 を取得します。


以下の人々から助けを得た後、これで動作するようになりました。

    ROW_ID = overlayItemList.get(index).getTitle();

    Intent intent = new Intent(context, ViewContactFromMap.class);
    intent.putExtra("ROW_ID", overlayItemList.get(index).getTitle());

    Log.e("putExtra", "ROW_ID is " + ROW_ID);

    context.startActivity(intent);

        // get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowIDs = extras.getString("ROW_ID");

    rowID = Long.parseLong(rowIDs); 
    Log.e("ViewContactFromMap", "rowID is: " + rowID);
4

5 に答える 5

0
 public static String ROW_ID = "row_id"; // Intent extra key
private Context c;  

 protected boolean onTap(int index) {
Intent intent = new Intent(c, ViewContactFromMap.class);
                    intent.putExtra(ROW_ID, overlayItemList.get(index).getTitle());
                    c.startActivity(intent); 
}


// get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowID = extras.getLong(MyOverlays.ROW_ID);

    Log.e("ViewContactFromMap", "rowID is: " + rowID);
于 2012-08-07T13:40:32.013 に答える