在android中使用共享首选项保存数据

时间:2011-05-12 05:16:17

标签: android string arraylist sharedpreferences save

我是Android应用程序的新开发人员。我想使用共享首选项概念保存数据。我将数据保存在一个活动中并在另一个活动中获取相同的数据。我想发送字符串a [ ] = {“one”,“two”,“three”}一个活动到另一个activity.i编写如下代码

Main1.java

public class Main1 extends Activity
 {

  @Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    SharedPreferences shp=getSharedPreferences("TEXT", 0);
    final Editor et=shp.edit();

    ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String s1=((EditText)findViewById(R.id.editText1)).getText().toString();
            et.putString("DATA", s1);

            String s2[]={"one","two","three"};

            //here i would like to save the string array

            et.commit();
            Intent it=new Intent(Main1.this,Main2.class);
            startActivity(it);

        }
    });


}

Main2.java

@Override

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);
    String kk=getSharedPreferences("TEXT", 0).getString("DATA", null);

    //here i would like to get the string array of Main1.java

    ((EditText)findViewById(R.id.editText1)).setText(kk);
}

我们可以从Main1.java获取字符串数组值到Main2.java吗?

3 个答案:

答案 0 :(得分:1)

将它放入起始意图:

Intent it = new Intent(Main1.this,Main2.class);
it.putExtra("MY_STRING_ARRAY", s2);

在第二项活动中取回它:

String[] myStringArray = getIntent().getStringArrayExtra("MY_STRING_ARRAY");

答案 1 :(得分:0)

如果要将数据从一个活动发送到另一个活动,那么最好的方法是使用Intent对象的putExtra方法发送数据

Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtra("data1", "some data");
i.putExtra("data2", "another data");
i.putExtra("data3", "more data");
startActivity(i);

您可以从接收活动Activity2获取数据

Object data1 = getIntent().getExtras().get("data1");

希望有所帮助

答案 2 :(得分:0)

如果您想通过SharedPreference保存您的信息,而不是仅仅将其传递给活动,请使用以下代码:

SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
    SharedPreferences.Editor prefEditor = settings.edit();
    prefEditor.putString("string_preference", "some_string");
    prefEditor.putInt("int_preference", 18);
    prefEditor.commit(); 

commit命令负责将数据实际保存到SharedPreferences。