Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用共享首选项存储textview_Java_Android_Android Intent_Sharedpreferences - Fatal编程技术网

Java 如何使用共享首选项存储textview

Java 如何使用共享首选项存储textview,java,android,android-intent,sharedpreferences,Java,Android,Android Intent,Sharedpreferences,所以我的问题可能被问了很多次,但我在互联网上找不到答案 。我要做的是使用SharedPrefences存储textview 在我的第一堂课xp中,我将文本视图发送给另一堂课 现在反馈接收textview时没有任何问题,但从未保存它。即使在关闭应用程序后,我如何在反馈类中存储该文本视图 下面是打算使用textview的类 public class Xp extends Activity { Button accept; TextView textV; TextView xbnum; public

所以我的问题可能被问了很多次,但我在互联网上找不到答案

。我要做的是使用SharedPrefences存储textview

在我的第一堂课xp中,我将文本视图发送给另一堂课 现在反馈接收textview时没有任何问题,但从未保存它。即使在关闭应用程序后,我如何在反馈类中存储该文本视图

下面是打算使用textview的类

public class Xp extends Activity {
Button accept;
TextView textV;
TextView xbnum;
public static final String PREFS_NAME = "MyPrefsFile";

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.xp);
    accept = (Button) findViewById(R.id.accept);
    textV = (TextView) findViewById(R.id.textV);
    xbnum = (TextView) findViewById(R.id.xpnum);


    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String value1 = extras.getString("intent_xp");
        final String value = extras.getString("intent_extra");
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor edit = settings.edit();
        edit.putString(PREFS_NAME, value);
        edit.putString(PREFS_NAME,value1);

        textV.setText(value);
        xbnum.setText(value1);


        edit.commit();
        accept.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(Xp.this, feedback.class);
                i.putExtra("intent_extra", textV.getText().toString());
                startActivity(i);
                finish();
            }
        });


    }
}

}
下面是一个类,它将接收该意图并按假设保存textview

public class feedback extends Activity {
TextView test1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.feedback);
    test1 = (TextView) findViewById(R.id.test1);
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String value = extras.getString("intent_extra");
        SharedPreferences settings = getSharedPreferences("intent_pref", 0);
        SharedPreferences.Editor edit = settings.edit();
        edit.putString("intent_pref",value);
        test1.setText(value);
        edit.apply();

    }

}

}

全班同学都收到了课文,一切都很好。只有当我关闭并打开应用程序时,所有内容才被清除。

可能我错了,但你似乎不理解共享首选项的工作原理

如果要在首选项文件中存储多个值并在其他类中访问它,则必须创建SharedReferences的一个实例

在您的情况下,这意味着在反馈和Xp中创建一个SharedReferences实例,如下所示:

SharedPreferences settings = getSharedPreferences("MyPrefsFile", SharedPreferences.MODE_PRIVATE);
然后使用此实例将数据存储到编辑器中。 如果不能为同一个键存储多个值,请小心


您还可以按照实际操作将值存储在多个文件中。但是,如果您想使用首选项文件的值设置textview,则必须在共享首选项实例上使用“您的值”方法的getStringkey来获取它。

如果我理解正确,您可能需要使用常规共享首选项而不是特定于活动的首选项。为什么要使用不同的共享首选项名字?除了保存价值,您的反馈活动还做了什么?您是否从SavedReferences检索过值?我将SharedReferences命名为相同的名称,但仍然没有保存。现在我只想保存这个值并在那里显示出来,稍后我会添加更多的功能。很抱歉,我尝试了你说的一切,但仍然不起作用。我在两个类中创建了该实例,在两个类中使用了相同的名称。没用。我甚至尝试了settings.getString,但仍然不起作用。我的意思是它显示了,但从不保存。还有其他建议吗?