В Android мне нужно отправлять значения переменных из одного класса активности в другой.Я знаю, что могу сделать это с помощью намерения.Но когда есть много значений переменных для отправки через несколько классов деятельности, это становится запутанным, особенно когда мне нужно изменить только несколько из них при переходе от одного класса деятельности к следующему.
Итак, я былрассматривая решение сохранить центральный суперкласс значений переменных, которые хранятся постоянно, и они могут обновляться из подклассов, когда я захочу.Navigation Drawer служит отличным кандидатом для суперкласса для этой цели, поскольку все мои классы активности Android наследуются от него.
public class ProductList extends NavigationDrawer
{
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
super.setTestVariable(9);
...
Intent intent1 = new Intent(ProductList.this, ProductDetail.class);
startActivity(intent1);
finish();
...
}
...
}
Теперь, почему этот класс не сохраняет значение переменной, а вместо этого сбрасывается в 0?Кто-нибудь знает, как заставить это работать?
public class ProductDetail extends NavigationDrawer
{
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Toast.makeText(Context.this, "Test Variable: " + Integer.toString(super.getTestVariable()), Toast.LENGTH_LONG).show();
...
}
...
}
Предположим, что Навигационный ящик работает как суперкласс, который действует как центральное хранилище для всех значений переменных, и все мои классы активности Android наследуются от него.Все классы действий обновляют значения глобальных переменных как центральное хранилище только в классе Navigation Drawer.
public class NavigationDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener
{
...
int testVariable;
public int getTestVariable() {
return testVariable;
}
public void setTestVariable(int testVariable) {
this.testVariable = testVariable;
}
...
}