我是android应用程序中的新开发人员。我使用共享首选项概念将数据从一个活动共享到另一个activity.i实现了如下代码
Main.java
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TableLayout table=(TableLayout)findViewById(R.id.tableLayout1);
table.removeAllViews();
String sName = null;
for(int i=0;i<10;i++)
{
TableRow row=new TableRow(Main.this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
TextView name=new TextView(Main.this);
name.setText(" HAI PRASAD"+i);
sName=name.getText().toString();
Log.v("sName 1111111","-->"+sName);
getSharedPreferences("Values", 0).edit().putString("NAMES",sName).commit();
name.setGravity(Gravity.LEFT);
name.setTypeface(Typeface.MONOSPACE);
row.addView(name);
table.addView(row);
}
((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it=new Intent(Main.this,Main2.class);
startActivity(it);
}
});
}
这里我打印一个名字十次并以共享偏好保存为
TextView name=new TextView(Main.this);
name.setText(" HAI PRASAD"+i);
sName=name.getText().toString();
Log.v("sName 1111111","-->"+sName);
getSharedPreferences("Values", 0).edit().putString("NAMES",sName).commit();
这里我想在Main2.class.the main2.java 中获取相同的数据,如下所示
public class Main2 extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
String name=getSharedPreferences("Values", 0).getString("NAMES", "");
((TextView)findViewById(R.id.textView1)).setText(name);
}
但在这里,我只得到一个名称为HAI PRASAD9
我怎样才能逐一获得
HAI PRASAD0 HAI PRASAD1 HAI PRASAD2 HAI PRASAD3 HAI PRASAD4 ......等等?
请任何人都可以帮忙
提前致谢
答案 0 :(得分:2)
您需要有多个键才能存储多个项目。这样的事情:
for (int i = 0; i < 10; i++) {
getSharedPreferences("Values" + i, 0).edit().putString("Key" + i, "STring" + i);
}
for (int i = 0; i < 10; i++) {
getSharedPreferences("Values" + i, 0).getString("Key" + i, "");
}
希望这有帮助。