0

次のプログラムでは、私がやろうとしていることは次のとおりです。共有設定で名前のリストを保存したい

アプリを初めて起動するときは、「profile_names」という名前で共有設定を作成する必要があります

その後、アプリが次回起動するときに、共有設定が存在するかどうかを確認し、存在する場合は設定から​​リストをフェッチしてリストビューに渡す必要があります。

しかし、それは機能していません.....どこが間違っているのですか?

 public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.profilespage);

File f= new File("/data/data/neeraj.cardXchange.Basic/shared_prefs/profile_names");

if(f.exists()){
    Toast.makeText(this, "prefernce already created", Toast.LENGTH_LONG).show();

    profile_names= getSharedPreferences("profile_names", MODE_WORLD_READABLE);
        try {
            myarraylist = getArrayList(mycontext, key);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


else{

         Toast.makeText(this, "prefernce  created now", Toast.LENGTH_LONG).show();
         profile_names= getSharedPreferences("profile_names", MODE_WORLD_READABLE);


        }



String [] name_list = myarraylist.toArray(new String[myarraylist.size()]);
ArrayAdapter adapter = new ArrayAdapter <String>(this, R.layout.textview, name_list);
setListAdapter(adapter);

    }

ここでは、トーストメッセージを使用して、「else」からのトーストメッセージが実行され、共有設定が作成されないたびに処理がどのように進行するかを確認しました。DDMSを使用して確認しました。

4

1 に答える 1

1

作成した共有設定をコミットする必要があります。最初に共有設定に値を保存してからコミットし、他のアクティビティで使用できる値を保持できるようにします。共有設定を作成してアクセスするための小さな例を次に示します

作成するには:

 SharedPreferences prefs = getSharedPreferences("UMSPreferences",MODE_PRIVATE);
                    SharedPreferences.Editor editor = prefs.edit();
                    editor.putString("UserId", login);  
                    editor.putString("password", password);
                    editor.commit();

アクセスするために

String userid = getSharedPreferences("UMSPreferences",MODE_PRIVATE).getString("UserId", login);
            String paswrd = getSharedPreferences("UMSPreferences",MODE_PRIVATE).getString("password", password);
于 2013-02-11T09:48:04.487 に答える