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