Вы можете использовать ответ соори с некоторыми модификациями. Лично я бы все еще использовал ваш класс myApp, но изменил бы listPos на static и получил бы к нему доступ таким образом. Делая это таким образом, вы можете использовать метод класса приложения onCreate
для инициализации значений при необходимости (хотя в этом примере это не понадобится) или другие методы Android.
public class MyApp extends Application {
public static int listPos;
}
//~~ Elsewhere:
MyApp.listPos = 5; //etc
Но это не лучший способ справиться с вашим типом проблемы.
Вы должны передавать информацию о позиции списка (или идентификатор элемента, по которому щелкнули, или как вы обрабатываете свои данные) через Intent
.
Вместо того, чтобы иметь глобальную переменную для отслеживания этой информации, оставьте ее локальной только для Intent:
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//app.listPos = position;
Intent intent = new Intent(Browse.this, CoffeeTypes.class);
intent.putExtra("position", position);
startActivity(intent);
//startActivity(new Intent(Browse.this, CoffeeTypes.class));
}
Это передает данные о положении в новое действие через намерение. В своей деятельности CoffeeTypes вы должны начать с чего-то следующего:
//in onCreate...
int incomingPosition = getIntent().getIntExtra("position",-1));
if(incomingPosition != -1) { //do stuff }
Это будет считывать данные "позиции" из входящего Намерения, чтобы вы могли использовать их. Значение -1 выше является значением по умолчанию, если ничего не добавлено.
Одно последнее предупреждение: вы можете быть осторожны при отправке позиции списка назад и вперед, в зависимости от того, как настроено ваше приложение, если новые элементы добавляются / удаляются элементы, позиция списка может больше не относиться к элементу, который вы думали это сделал. Если эти типы кофе / что бы вы ни использовали, имеют отдельный уникальный идентификатор, который может быть более подходящим для избежания вышеуказанной ситуации, рассмотрите возможность использования этого вместо этого.