Получение значений общих настроек в другом действии - PullRequest
3 голосов
/ 16 ноября 2011

Может кто-нибудь сказать, где я не прав, потому что это простой процесс, но как не получить значения, которые я не могу понять, и выполнить условную проверку строковой переменной ...

Задание A: -

EditText e = (EditText) findViewById(R.id.editText1);
        EditText e1 = (EditText) findViewById(R.id.editText2);
        EditText e2 = (EditText) findViewById(R.id.editText3);
        EditText e3 = (EditText) findViewById(R.id.editText4);
        EditText e4 = (EditText) findViewById(R.id.editText5);
        EditText e5 = (EditText) findViewById(R.id.editText6);
        EditText e6 = (EditText) findViewById(R.id.editText7);

        SharedPreferences myPrefs = getSharedPreferences("myPrefs", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor = myPrefs.edit();
        editor.putString("text", e.getText().toString());
        SharedPreferences myPrefs1 = getSharedPreferences("myPrefs1", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor1 = myPrefs1.edit();
        editor1.putString("text1", e1.getText().toString());

    SharedPreferences myPrefs2 = getSharedPreferences("myPrefs2", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor2 = myPrefs.edit();
        editor2.putString("text2", e2.getText().toString());

SharedPreferences myPrefs3 = getSharedPreferences("myPrefs3", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor3 = myPrefs3.edit();
        editor3.putString("text3", e3.getText().toString());

SharedPreferences myPrefs4 = getSharedPreferences("myPrefs4", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor4 = myPrefs4.edit();
        editor4.putString("text4", e4.getText().toString());

        SharedPreferences myPrefs5 = getSharedPreferences("myPrefs5", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor5 = myPrefs5.edit();
        editor5.putString("text5", e5.getText().toString());

        SharedPreferences myPrefs6 = getSharedPreferences("myPrefs6", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor6 = myPrefs6.edit();
        editor6.putString("text6", e6.getText().toString());

Упражнение B: -В этом занятии я получаю доступ к значениям и выполняю условную проверку, но только в обоих случаях выполняется условие

public class CheckActivity extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SharedPreferences myPrefs = getSharedPreferences("myPrefs",Context.MODE_PRIVATE); 
        String restoredText = myPrefs.getString("text", "");
        SharedPreferences myPrefs1 = getSharedPreferences("myPrefs1",Context.MODE_PRIVATE); 
        String restoredText1 = myPrefs1.getString("text1", "");
        SharedPreferences myPrefs2 = getSharedPreferences("myPrefs2",Context.MODE_PRIVATE); 
        String restoredText2 =myPrefs2.getString("text2", "");
        SharedPreferences myPrefs3 = getSharedPreferences("myPrefs3",Context.MODE_PRIVATE); 
        String restoredText3 =myPrefs3.getString("text3", "");
        SharedPreferences myPrefs4 = getSharedPreferences("myPrefs4",Context.MODE_PRIVATE); 
        String restoredText4 = myPrefs4.getString("text4", "");
        SharedPreferences myPrefs5 = getSharedPreferences("myPrefs5",Context.MODE_PRIVATE);  
        String restoredText5 = myPrefs5.getString("text5", "");
        SharedPreferences myPrefs6 = getSharedPreferences("myPrefs6",Context.MODE_PRIVATE); 
        String restoredText6 = myPrefs6.getString("text6", "");
    Intent i1 = new Intent();
    if((restoredText.length()>1)&&(restoredText1.length()>1)&&(restoredText2.length()>1)&&(restoredText3.length()>1)&&(restoredText4.length()>1)&&(restoredText5.length()>1)&&(restoredText6.length()>1))
        {
             i1.setClass(this,ShpoonkleActivity.class);
        }
        //if((restoredText.length()==0)||(restoredText1.length()==0)||(restoredText2.length()==0)||(restoredText3.length()==0)||(restoredText4.length()==0)||(restoredText5.length()==0)||(restoredText6.length()==0))
    else    
    {
            i1.setClass(this,Test.class);
    }
        startActivity(i1);
        finish();
    }
}

Ответы [ 3 ]

4 голосов
/ 16 ноября 2011

вы должны зафиксировать свои данные с помощью editor.commit();

Примечание: в вашем случае нет необходимости использовать большое количество экземпляров SharedPreferences, вам нужен только один экземпляр, а затемпоместите все свои строки в него и зафиксируйте

2 голосов
/ 16 ноября 2011

вы должны использовать

editor.commit();

для сохранения ваших изменений. кроме того, вам не нужно использовать разные файлы для хранения разных строк, вы можете хранить все строки в одном файле общих настроек.

0 голосов
/ 17 ноября 2011

фактически сохранение текста edittext создавало неоднозначность и, следовательно, не очень хорошо выполнялось, поэтому я сделал это, как показано ниже: -

Деятельность B: -

protected void onPause() {
        EditText ed = (EditText)findViewById(R.id.editText1);
        EditText ed1 = (EditText)findViewById(R.id.editText2);
        EditText ed2 = (EditText)findViewById(R.id.editText3);
        EditText ed3 = (EditText)findViewById(R.id.editText4);
        EditText ed4 = (EditText)findViewById(R.id.editText5);
        EditText ed5 = (EditText)findViewById(R.id.editText6);
        EditText ed6 = (EditText)findViewById(R.id.editText7);

        super.onPause();
        SharedPreferences myPrefs = getSharedPreferences("myPrefs", Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor = myPrefs.edit();
        editor.putString("text", ed.getText().toString());
        editor.putString("text1", ed1.getText().toString());
        editor.putString("text2", ed2.getText().toString());
        editor.putString("text3", ed3.getText().toString());
        editor.putString("text4", ed4.getText().toString());
        editor.putString("text5", ed5.getText().toString());
        editor.putString("text6", ed6.getText().toString());
        editor.commit();
    }

Задание A: -

public class CheckActivity extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SharedPreferences myPrefs = getSharedPreferences("myPrefs",Context.MODE_PRIVATE); 
        String restoredText = myPrefs.getString("text", "");
        String restoredText1 = myPrefs.getString("text1", "");
        String restoredText2 =myPrefs.getString("text2", "");
        String restoredText3 =myPrefs.getString("text3", "");
        String restoredText4 = myPrefs.getString("text4", "");
        String restoredText5 = myPrefs.getString("text5", "");
        String restoredText6 = myPrefs.getString("text6", "");
    Intent i1 = new Intent();
    if((restoredText.length()>0)&&(restoredText1.length()>0)&&(restoredText2.length()>0)&&(restoredText3.length()>0)&&(restoredText4.length()>0)&&(restoredText5.length()>0)&&(restoredText6.length()>0))
        {
             i1.setClass(this,ShpoonkleActivity.class);
        }
        //if((restoredText.length()==0)||(restoredText1.length()==0)||(restoredText2.length()==0)||(restoredText3.length()==0)||(restoredText4.length()==0)||(restoredText5.length()==0)||(restoredText6.length()==0))
    else    
    {
            i1.setClass(this,Test.class);
    }
        startActivity(i1);
        finish();
    }
}

И это работает потрясающе ... Thnx ..

...