为了账号安全,请及时绑定邮箱和手机立即绑定

每次单击在Android Studio中来回切换活动时如何将值增加一

每次单击在Android Studio中来回切换活动时如何将值增加一

临摹微笑 2023-04-19 15:57:53
每次单击按钮来回切换活动时,我都试图将变量计数的值增加一。但是,每次我单击时,计数值仍然相同。有人可以帮忙吗?我正在尝试放置一些生命周期 android 代码,但它仍然没有任何区别。package com.darayuth.learning;import android.content.Context;import android.content.Intent;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import com.squareup.picasso.Picasso;public class MainActivity extends AppCompatActivity {    public static final String EXTRA_MESSAGE = "com.darayuth.learning";    public static final String TAG = "MainActivity";    public static final String value = "value";    private int count = 0;    private TextView textView;    @Override    protected void onSaveInstanceState(Bundle outState) {        outState.putInt(value, count);        super.onSaveInstanceState(outState);    }    @Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);        count = savedInstanceState.getInt(value);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = findViewById(R.id.textView2);        Button btn = findViewById(R.id.button);        btn.setOnClickListener((View v)->{            sendMessage();        });    }    public void sendMessage(){        count = count + 1;        Log.i(TAG, "value: " + count);        Intent intent = new Intent(this, Main2Activity.class);        EditText editText = findViewById(R.id.editText);        String message = editText.getText().toString();        intent.putExtra(EXTRA_MESSAGE, message );        startActivity(intent);    }}</LinearLayout>
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我建议使用 SharedPreferences 来存储和检索活动之间的值。


private void storeValue(){

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);


    // Store an integer using the Shared Preferences editor

    SharedPreferences.Editor editor = prefs.edit();

    editor.putInt("myPreferenceValueKey", value); // Store the value with a key to identify it

    editor.apply();

}


private void retrieveValue(){

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);

    int defaultValue = 0; // This is the value that's returned if the preference doesn't exist


    // Retrieve the stored value using the associated key

    value = prefs.getInt("myPreferenceValueKey", defaultValue);

}

在您的第一个活动中,只需在增加值之后但在开始下一个活动之前调用retrieveValue()您的onCreate()then 调用。storeValue()


您可以在第二个 Activity 中创建相同的函数来根据需要存储和检索值。

查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信