当我使用另一个活动返回它时,我增加的变量会自行重置

赛斯里拉姆

我正在制作一个应用程序,它在单击按钮时增加一个计数器并同时转到下一个活动。我敬酒,看看它是否有效,它确实有效。我的应用程序是这样的,在主页上你按下开始,然后你被带到一个页面,那里有一个按钮,你可以点击它增加一个变量并带你到下一页等等。当我使用返回时屏幕菜单上的按钮,然后再次按下按钮它会增加,但是当我走到最后并返回主页面并再次按下开始并按下按钮时它会回到1,所以它会自行重置我该怎么做修复它以便即使按下开始按钮变量也应该保持其值?

这是主页面的代码:

public class MainPage extends Activity {
@Override
protected void onResume() {
    hideNavigationBar();
    super.onResume();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main_page);
    hideNavigationBar();

    Button mainPage = (Button)findViewById(R.id.mainPage);
    mainPage.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
                    Intent intent = new Intent(MainPage.this, HeadBoy.class);
                    startActivity(intent);
                    }
                    });
    ImageButton resultClick = (ImageButton) findViewById(R.id.resultClick);
    resultClick.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            Intent intent = new Intent(MainPage.this, Results.class);
            startActivity(intent);
        }
    });

    }

这是第二页的代码(计数器递增的那一页):

public class HeadBoy extends AppCompatActivity {
SharedPreferences.Editor editor;
int hb1 ;
int hb2 ;

public  static final String HEAD_BOY_ONE = "count";
public static final String HEAD_BOY_TWO = "counttwo";


@Override
protected void onResume() {
    hideNavigationBar();
    super.onResume();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_head_boy);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = prefs.edit();


    final Button hbone = (Button) findViewById(R.id.hbOne);
    final Button hbtwo = (Button) findViewById(R.id.hbTwo);
    hbone.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            increment();

            Intent intent = new Intent(HeadBoy.this,HeadGirl.class);
            startActivity(intent);
        }
    });
    hbtwo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(HeadBoy.this,HeadGirl.class);
            startActivity(intent);
        }
    });

    hideNavigationBar();



}
public void increment(){
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = prefs.edit();
    hb1 = hb1 + 1;
    editor.putInt("headboy1", hb1);

    editor.apply();
      Toast.makeText(this,Integer.toString(hb1),Toast.LENGTH_LONG).show();
}

这是最后一页:

public class Results extends AppCompatActivity {

@Override
protected void onResume() {
    super.onResume();
    hideNavigationBar();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
     int headboyResult = prefs.getInt("headboy1", 0);
    TextView headBoy = (TextView) findViewById(R.id.headBoy);
    headBoy.setText(Integer.toString(headboyResult));

    Button btn = (Button)findViewById(R.id.returnButton);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent back = new Intent(Results.this,MainPage.class);
            startActivity(back);
        }
    });
   Button reset = (Button) findViewById(R.id.resetAll);
   reset.setOnClickListener(new View.OnClickListener() {
     @Override
      public void onClick(View view) {
      //   editor.putInt("headboy1", 0);
     }
   });
萨加尔

这样做的原因是,您没有读取计数器的存储值。每次重新创建活动时,计数器都会初始化为 0。

更改方法如下:

 public void increment(){
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        SharedPreferences.Editor editor = prefs.edit();
        hb1 = prefs.getInt("headboy1",0);

        hb1 = hb1 + 1;
        editor.putInt("headboy1", hb1);

        editor.apply();
        Toast.makeText(this,Integer.toString(hb1),Toast.LENGTH_LONG).show();
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我尝试使用putExtra传递数组并在另一个活动中获取它时出错

来自分类Dev

当我切换到另一个 Excel 文件时,Excel 宏会自行停止运行

来自分类Dev

NullPointer异常,当我将变量从一个活动传递到另一个活动时

来自分类Dev

当我在 Python 的另一个函数中使用它时,我可以隐藏它的某些返回值吗?

来自分类Dev

当我更改作为另一个副本的变量的值时,它也会更改原始变量

来自分类Dev

当我转到另一个活动时,我的应用程序不断崩溃

来自分类Dev

当我单击另一个链接时,获取ajax jquery进行重置

来自分类Dev

当我使用 jquery 选择另一个选择框的空值时,如何重置选择框?

来自分类Dev

当我使用另一个参数来决定它时,如何对列表的连续项目求和

来自分类Dev

当我打开另一个活动时,应用程序崩溃

来自分类Dev

当我期望系列时,Pandas DataFrame列会显示另一个DataFrame

来自分类Dev

当我期望系列时,Pandas DataFrame列会显示另一个DataFrame

来自分类Dev

为什么当我在一个函数中定义变量时,却无法在另一个函数中访问它

来自分类Dev

当我从片段活动导航到另一个活动时,片段活动调用destroy方法

来自分类Dev

当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

来自分类Dev

当我尝试将此变量的值附加到另一个变量时,“ <<”会插入指向变量的指针。如何避免这种情况?

来自分类Dev

当我使用另一个文件中的变量时,全局符号需要显式包名

来自分类Dev

Listview.setAdapter ...当我从另一个选项卡返回时崩溃

来自分类Dev

当我将另一个图像居中时,一个图像会移动

来自分类Dev

当我从同一ListView行更新另一个TextView时,TextView滚动正在重置

来自分类Dev

每当我插入另一个键盘时,按键重复率都会重置为某个值

来自分类Dev

当我使用预定义函数定义另一个函数时,RaiseError被调用

来自分类Dev

当我使用onclick属性单击元素时如何触发另一个功能

来自分类Dev

当我使用 jQuery 单击另一个元素时隐藏元素

来自分类Dev

当我使用history.push时,如何从一个组件到另一个组件获取状态变量?

来自分类Dev

当我们使用$ this关键字通过另一个当前方法或变量指向一个方法时

来自分类Dev

当我声明它时,如何在同一对象的另一个属性中使用先前对象属性的值

来自分类Dev

当我切换到另一个包含回收者视图的活动时,应用程序崩溃

来自分类Dev

当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

Related 相关文章

  1. 1

    当我尝试使用putExtra传递数组并在另一个活动中获取它时出错

  2. 2

    当我切换到另一个 Excel 文件时,Excel 宏会自行停止运行

  3. 3

    NullPointer异常,当我将变量从一个活动传递到另一个活动时

  4. 4

    当我在 Python 的另一个函数中使用它时,我可以隐藏它的某些返回值吗?

  5. 5

    当我更改作为另一个副本的变量的值时,它也会更改原始变量

  6. 6

    当我转到另一个活动时,我的应用程序不断崩溃

  7. 7

    当我单击另一个链接时,获取ajax jquery进行重置

  8. 8

    当我使用 jquery 选择另一个选择框的空值时,如何重置选择框?

  9. 9

    当我使用另一个参数来决定它时,如何对列表的连续项目求和

  10. 10

    当我打开另一个活动时,应用程序崩溃

  11. 11

    当我期望系列时,Pandas DataFrame列会显示另一个DataFrame

  12. 12

    当我期望系列时,Pandas DataFrame列会显示另一个DataFrame

  13. 13

    为什么当我在一个函数中定义变量时,却无法在另一个函数中访问它

  14. 14

    当我从片段活动导航到另一个活动时,片段活动调用destroy方法

  15. 15

    当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

  16. 16

    当我尝试将此变量的值附加到另一个变量时,“ <<”会插入指向变量的指针。如何避免这种情况?

  17. 17

    当我使用另一个文件中的变量时,全局符号需要显式包名

  18. 18

    Listview.setAdapter ...当我从另一个选项卡返回时崩溃

  19. 19

    当我将另一个图像居中时,一个图像会移动

  20. 20

    当我从同一ListView行更新另一个TextView时,TextView滚动正在重置

  21. 21

    每当我插入另一个键盘时,按键重复率都会重置为某个值

  22. 22

    当我使用预定义函数定义另一个函数时,RaiseError被调用

  23. 23

    当我使用onclick属性单击元素时如何触发另一个功能

  24. 24

    当我使用 jQuery 单击另一个元素时隐藏元素

  25. 25

    当我使用history.push时,如何从一个组件到另一个组件获取状态变量?

  26. 26

    当我们使用$ this关键字通过另一个当前方法或变量指向一个方法时

  27. 27

    当我声明它时,如何在同一对象的另一个属性中使用先前对象属性的值

  28. 28

    当我切换到另一个包含回收者视图的活动时,应用程序崩溃

  29. 29

    当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

热门标签

归档