我是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吗?
答案 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。