SharedPreference 给我未知的日志

SharedPreference giving me unknown LOG

我想知道点击Buttom Navigation Bar时显示的log是什么意思,这个item里面的文本信息是保存在prefrence中的。

这是点击时导航项的代码:

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));

这是显示的日志信息:

/POPI: txt in main2 :android.widget.TextView{1e42d479 V.ED.... ......ID 0,0-0,0 #7f09016d app:id/txtEmtiaz}

您正在尝试打印 TextView。您想改为打印 TextView 的内容,请使用:

txtEmtiaz.getText().toString()

您需要从 txtEmtiaz 获取文本,然后将其设置为 sp 共享首选项。

问题在下面一行:

txtEmtiaz.setText();

更改为:

sp.putString("tik", txtEmtiaz.getText());

日志中的问题:

  Log.e("POPI", "txt in main2 :" + String.valueOf(txtEmtiaz));

您正在尝试打印 txtEmtiaztxtEmtiaz 对象,当然您不能。

您应该像下面这样打印 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);

    }