Доступ к базе данных формы по нажатию listView

1

У меня есть ListView в activity1, где у меня есть несколько элементов, которые являются словом из базы данных. Пользователь Нажимает на элемент в Listview, и он будет перемещаться к activity2, где он должен показывать детали слова, которые хранятся в базе данных в виде столбца, определения. Но то, что появляется в Screen2, зависит от того, какой элемент был нажат на экране 1

Для Ex - кликов пользователя A на экране 1 - Слова, начинающиеся с A, появляются на экране 2. Есть ли способ передать идентификатор строки, чтобы на следующем экране отображалось слово и определение из базы данных.

Спасибо в adv.. код для первой активности:

lv.setOnItemClickListener (новый AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            // TODO Auto-generated method stub


            Cursor c = mDictCursor;
            c.moveToPosition(position);
            Intent i = new Intent(FirstActivity.this, SecondActivity.class);
            Bundle bundle=new Bundle();
            //intent.putExtra("position",position);
            bundle.putLong(DBAdapter.KEY_ROWID, id);
            bundle.putString(DBAdapter.KEY_TITLE, c.getString(
                  c.getColumnIndexOrThrow(DBAdapter.KEY_TITLE)));
            bundle.putString(DBAdapter.KEY_DEFINITION, c.getString(
                    c.getColumnIndexOrThrow(DBAdapter.KEY_DEFINITION)));
            i.putExtras(bundle);
            startActivity(i);
        }

Код SecondActivity:

Bundle extras = getIntent(). GetExtras();

        mRowId = extras.getLong(DBAdapter.KEY_ROWID);
        String title = extras.getString(DBAdapter.KEY_TITLE);
        String body = extras.getString(DBAdapter.KEY_DEFINITION);


        TextView word = (TextView) findViewById(R.id.word);
        word.setText(title);

            TextView definition = (TextView) findViewById(R.id.definition);
            definition.setText(body);
        }

Всякий раз, когда я нажимаю элемент listview, он показывает диалог, чтобы заставить закрыть. Пожалуйста помоги...

  • 0
    Читайте о Intent дополнений.
  • 0
    Можете ли вы опубликовать ошибку logcat.
Теги:
database
listview

2 ответа

1
Лучший ответ

вы можете использовать метод intent object putExtra (String name, int value) в Screen1 (см. 1) и передать объект намерения Screen2, в Screen2 использовать метод getIntExtra (String name, int defaultValue) объекта Intent (см. 2). 1.use startActivity (Intent intent) метод в Screen1 2.use getIntent() метод в Screen2, чтобы получить объект Intent, который вы передали в Screen1

  • 0
    Спасибо за ответ. Я использую то же самое, но все еще получаю ошибки. Может быть, я использую их неправильно. Можете ли вы предоставить любой учебник или пример, который я могу сослаться, это будет действительно полезно.
  • 0
    Можете ли вы предоставить код и информацию об ошибке?
1

Наверное, вы смотрите что-то подобное. https://market.android.com/developer?pub=acharya https://market.android.com/details?id=com.acharyaapp.malayalam.aksharam.full (Это мои приложения)

Почему вы не пытаетесь использовать класс Singleton для хранения информации. Одно намерение может установить его, а другое намерение может его прочитать. Я использовал эту логику в своих приложениях.

РЕДАКТИРОВАТЬ

public class MySingleton {
    private static final MySingleton INSTANCE = new MySingleton();
    //TODO ... all your variable as public static variables. eg. KEY_TITLE
    private MySingleton() { }
    public static MySingleton getInstance() 
            return INSTANCE;
    }
}

Внутри действия используйте их как обычные экземпляры. Просто не забудьте вызвать getInstance() вместо конструктора, чтобы получить общий экземпляр.

надеюсь это поможет.

  • 0
    @ см добавлено. смотри выше. это основной синглтон. ничего фантастического.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню