Мне нужна помощь в понимании putExtra и получении идентификатора строки? - PullRequest
1 голос
/ 12 декабря 2010

Утро, я хотел бы помочь с моим конкретным кодом, но если вы заняты, любая информация об использовании putExtra и retrieveRow также будет отличной помощью.

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

Вот что я пытаюсь сделать .. У меня есть прослушиватель onItemClick для просмотра списка, который я заполнил из базы данных sqlite, когда он выбран, я хочу передать строку _id вместе с содержимым другого столбца для этой строки. (BUDGET_AMOUNT) в другой класс. Поэтому я думаю, что мне нужно что-то вроде ниже, но, как вы можете видеть по всем вопросительным знакам, я действительно запутался в том, как реализовать то, что мне нужно.

// add an onclicklistener for when an item on the list is pressed
        incomeView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                Cursor c = ???.retrieveRow(id);

                Intent keypadIntent = new Intent(view.getContext(), Keypad.class);
                keypadIntent.putExtra(???._ID, id);//put extra needs work
                keypadIntent.putExtra(???.BUDGET_AMOUNT, c.getFloat(
                        c.getColumnIndexOrThrow(???.BUDGET_AMOUNT)));
                startActivityForResult (keypadIntent, ???);


                }
            });

Код выше взят из моего класса Budget.java, который я загрузил здесь . У меня также есть класс с именем Data.java , который расширяет SQLiteOpenHelper, и класс с именем DatabaseConstants , который содержит целую кучу строковых переменных для категорий и запросов. Спасибо, что нашли время, чтобы посмотреть или предложить совет.

1 Ответ

1 голос
/ 12 декабря 2010

Посмотрите, поможет ли это.Я думаю, что моя реализация немного отличается от вашей, но для аналогичной функции.

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked

    Intent selectedProjectType = new Intent();

    Cursor o = (Cursor) this.getListAdapter().getItem(position);
    String keyword = o.getString(1);

    selectedProjectType.putExtra("selectedprojecttype", keyword);

    setResult(RESULT_OK, selectedProjectType);
    finish();
}
...