Как использовать putExtra / get_Extra при работе с намерениями? - PullRequest
2 голосов
/ 15 декабря 2010

У меня есть список, где каждый элемент представляет собой строку в таблице sqlite, я пытаюсь передать идентификатор строки элемента, по которому они щелкнули, от одного действия к следующему.Вот метод, который я пытаюсь настроить в действии A,

public static final int REQUEST_CODE=0; //variable used when i want to startActivityForResult..

public void ListItemCommonIntent(long id, View view){
    Log.i("Blah", "current item pressed is" + id);
    Intent keypadIntent = new Intent(view.getContext(), Keypad.class);
    keypadIntent.putExtra(Keypad.selectedRowId, id);
    startActivityForResult (keypadIntent, REQUEST_CODE);
}

А вот где я пытаюсь получить идентификатор в действии b и поместить его в selectedRowId

public Long selectedRowId;
private String findBudgetQuery = "SELECT BUDGET_AMOUNT FROM CAT_BUD_TAB WHERE _ID='" + selectedRowId + "'";

public void FindBudgetForId(){
    //This method should query for current budget and..
    SQLiteDatabase db = budgetData.getWritableDatabase();
    selectedRowId = getIntent().getLongExtra(selectedRowId, 1);
    db.rawQuery(findBudgetQuery, null);
}

Однакоя просто не могу заставить его работать, я думаю, что мне нужно больше информации, может кто-нибудь объяснить, как использовать putExtra и получить что-то на другой стороне.Я думаю, что я не полностью понимаю параметры четного метода.

Ответы [ 2 ]

4 голосов
/ 15 декабря 2010

Начало намерения с дополнительным полем.

   public void onClick(DialogInterface dialog, int id) {
       Intent intent = new Intent(mContext, org.gpsagenda.DetailsContainer.class);
       intent.putExtra("id", item.ID());
       mContext.startActivity(intent);
   }

Получение дополнительного поля в начатом занятии.

int id = getIntent().getExtras().getInt("id");

Остерегайтесь, хотя вы можете получить null, если Дополнительноене установлено!

2 голосов
/ 15 декабря 2010

Первый параметр putExtra и getExtra должен быть строкой, которую вы используете для идентификации передаваемой вами информации. Например:

intent.putExtra("mySelectedRowId", rowId);

Вы можете использовать этот же ключ для получения информации позже, второй параметр является значением по умолчанию, используемым, если ключ не найден:

selectedId = intent.getLongExtra("mySelectedRowId", 1);
...