Доступ к базе данных формы по нажатию listView - PullRequest
1 голос
/ 02 июля 2011

У меня есть ListView в Activity1, где у меня есть несколько элементов, которые являются словом из базы данных. Пользователь нажимает на элемент в ListView, и он переходит к Activity2, где он должен показать детали слова, которые хранятся в базе данных в виде слова столбца, определения. Но то, что появляется на Экране 2, зависит от того, какой элемент был нажат на Экране 1

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

Спасибо, в сообщении .. код для первого занятия:

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);
        }

Второй код активности:

Пакет дополнений = 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);
        }

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

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Полагаю, вы выглядите примерно так.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 () вместо конструктора, чтобы получить общий экземпляр.

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

1 голос
/ 02 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...