как сохранить данные, используя общие настройки? - PullRequest
0 голосов
/ 16 мая 2011

Я новый разработчик в приложении для Android. Я использовал концепцию общих предпочтений для обмена данными из одного занятия в другое. Я реализовал код следующим образом

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

как я могу получить одно за другим

ХАЙ ПРАСАД0 ХАЙ ПРАСАД1 ХАЙ ПРАСАД2 ХАЙ ПРАСАД3 ХАЙ ПРАСАД4 ...... так далее?

пожалуйста, любой может помочь

заранее спасибо

1 Ответ

2 голосов
/ 16 мая 2011

Вам нужно иметь несколько ключей для хранения нескольких предметов.Примерно так:

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, "");
    }

Надеюсь, это поможет.

...