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

Я новый разработчик в приложениях для Android. Я хотел бы сохранить данные с использованием концепции общих предпочтений. Я сохраняю данные в одном действии и получаю те же данные в другом занятии. Здесь я хотел бы отправить строку [ ] = {"один", "два", "три"} одно действие в другое действие. Я написал следующий код

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 ]

1 голос
/ 12 мая 2011

Поместите это в начальное намерение:

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

Верните его во втором упражнении:

String[] myStringArray = getIntent().getStringArrayExtra("MY_STRING_ARRAY");
0 голосов
/ 27 ноября 2013

Если вы хотите сохранить свою информацию через 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.

0 голосов
/ 12 мая 2011

Если вы хотите отправлять данные из одного действия в другое, то лучшим способом будет отправка данных с использованием метода putExtra объекта Intent

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

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

...