如何在SharedPreferences中传递EditText值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SharedPreferences中传递EditText值相关的知识,希望对你有一定的参考价值。

main activity.Java

EditText t=(EditText)findViewById(R.id.editText); 
String str=t.getText().toString(); 
this.getSharedPreferences("mp", 
     Context.MODE_PRIVATE).edit().putString("pt",str).apply();

receiver.Java

    TextView t= (TextView) findViewById(R.id.tv); 
    String s = this.getSharedPreferences("mp", Context.MODE_PRIVATE).getString("pt","");
    t.setText(s);

在这种情况下,当我直接传递字符串值而不是EditText数据时,它运行良好。请修复哪里出错了。提前致谢

答案

你在onCreate函数中调用了这些函数。你应该把主题放在按钮的监听器中

button.setOnClickListener(new View.OnClickListener {
    @Override
    private void onClick(View view){
        // get text from EditText
        // put text to SharedPreferences
    }
});

应用程序启动时,EditText中没有任何内容。

以上是关于如何在SharedPreferences中传递EditText值的主要内容,如果未能解决你的问题,请参考以下文章

使用集合调用构造函数类并从 asyncTask 获取 sharedpreferences(无法传递上下文)

安卓sharedpreferences怎么存储double类型

如何在颤振中创建 SharedPreferences 的 Singleton 类

如何在 ViewModel 中访问 SharedPreferences?

如何在 sharedpreferences 中存储多个数据?

如何在 Flutter 中使用 SharedPreferences 和 Injectable?