У меня есть действие, которое показывает какой-то элемент из списка.
При перелистывании справа налево та же активность запускается со следующим продуктом, а при перелистывании слева направо я запускаю ту же операцию с предыдущим продуктом.
Я получаю позицию продукта из глобального массива, используя переменную-член position
, которую уменьшаю при переходе к предыдущему продукту и увеличиваю при переходе к следующему продукту, и которую я передаю в качестве дополнительного в намерении.
Проблема в том, что при нажатии кнопки "назад" значение position
остается таким же, как и в упражнении, из которого я иду. Я понимаю, что onResume вызывается вместо onCreate и что дополнительные не передаются, но position
не является статическим, и я ожидаю, что оно сохранит свое значение в экземпляре действия. Почему это не так?
Спасибо
public class ProductHome extends Activity{
private int position;
private Product product;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product_home);
position = getIntent().getIntExtra("Position", -1);
product = GlobalData.map_products.get(product_id);
// swipe detector
// left -> right: position++
// right -> left: position--
// then starts same activity again
gestureDetector = new GestureDetector(new SRPGestureDetector());
gestureListener = new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
if (gestureDetector.onTouchEvent(event))
{
return true;
}
else{
return false;
}
}
};
RelativeLayout product_home = (RelativeLayout) findViewById(R.id.product_home);
product_home.setOnTouchListener(gestureListener);
}
}