我正在尝试当我点击Buttom导航栏时,这个项目中的文本信息存储在prefrence中,我已经定义了一个LOG这是LOG信息,显示我做了很多研究,但我没有收到正确答案。
这是点击时导航项中的代码:
case R.id.navigation_gift:
//********************************************************************************************
View view = View.inflate(getApplicationContext(), R.layout.section_fragment_69, null);
TextView txtEmtiaz = (TextView) view.findViewById(R.id.txtEmtiaz);
SharedPreferences sp = getSharedPreferences("entire", 0);
txtEmtiaz.setText(sp.getString("tik", ""));
Log.e("POPI", "txt in main2 :" + String.valueOf(txtEmtiaz));
这是LOG信息,我不明白LOG在说什么:
/POPI: txt in main2 :android.widget.TextView{1e42d479 V.ED.... ......ID 0,0-0,0 #7f09016d app:id/txtEmtiaz}
我不想告诉发生了什么。我想知道每个单词和数字的含义。
您需要从txtEmtiaz
获取文本,然后将其设置为sp
共享首选项。
问题在于以下行:
txtEmtiaz.setText();
改成:
sp.putString("tik", txtEmtiaz.getText());
日志中的问题:
Log.e("POPI", "txt in main2 :" + String.valueOf(txtEmtiaz));
你正在尝试打印txtEmtiaz
即txtEmtiaz
对象,当然你不能。
您应该使用如下打印txtEmtiaz
TextView的值(文本):
Log.e("POPI", "txt in main2 :" + txtEmtiaz.getText());
试试这个
您正在使用没有名称的SharedPreference。
试试这个带有名字的SharedPreference:
在“首选项”中设置值
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", "HD");
editor.apply();
从首选项中检索数据:
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
String name = prefs.getString("name", "HD");
txtEmtiaz.setText(name);
}
您正在尝试打印TextView。您想要打印TextView的内容,使用:
txtEmtiaz.getText().toString()