2012-05-09 13 views
0

こんにちは私は共有設定を実装しようとしていますし、試してみるとうまく動作しないようです。私は、誰かがリストビュー内のアイテムをクリックしたときに、その選択についてのデータを共有プリレファレンスに格納したいと思っています。アプリケーションが読み込まれるときに私はそれを共有嗜好をチェックしたいと思っています:もし、嗜好がない場合は、このアクティビティに行きます。私はまた、別のアクティビティにそれらを取得する方法を送信されるときにいくつかの設定があるかどうかを知りたいと思います。その初めてではないが、私はこの質問をしてきたが、私は非常に明確ではなかったとして、IDの再尋ねると思っandroid shared preferences implementation

HERESに私はこれまでイントロ活動の後、

protected void onListItemClick (ListView l, View v, int position, long id) { 
     Intent intent = new Intent(this, HomeActivity.class); 
     try { 
      Log.v("lc", "try1"); 
      JSONObject singleTeamDictionary = teamNamesArray.getJSONObject(position); 

      Log.v("lc", "dictionary:" + singleTeamDictionary); 

      Log.v("lc", "try2"); 
      ChosenTeam = (String) singleTeamDictionary.get("name"); 
      ChosenTeamId = (String) singleTeamDictionary.get("team_id"); 
      ChosenLeagueId = (String) singleTeamDictionary.get("league_id"); 
      ChosenDivisionID = (String) singleTeamDictionary.get("division_id"); 

      Log.v("lc", "try3"); 

      Log.v("lc", "ChosenTeam: " + ChosenTeam); 
      Log.v("lc", "ChosenTeamId: " + ChosenTeamId); 
      Log.v("lc", "ChosenLeagueId: " + ChosenLeagueId); 
      Log.v("lc", "ChosenDivisionID: " + ChosenDivisionID);   


     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      Log.v("lc", "catch"); 

     } 

     String curPos = Integer.toString(position); 
    Log.v("lc", "teamPos: " + curPos); 

    SharedPreferences preferences = getSharedPreferences("prefs", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putString("ChosenMethod", "Team"); 
    editor.putString("ChosenTeam", ChosenTeam); 
    editor.putString("ChosenTeamId", ChosenTeamId); 
    editor.putString("ChosenLeagueId", ChosenLeagueId); 
    editor.putString("ChosenDivisionID", ChosenDivisionID); 
    editor.commit(); 


     //or just use the position: 
     intent.putExtra("itemIndex", curPos); 
     intent.putExtra("fullData", fulldata); //or just the part you want 
     startActivity(intent); 
    } 

を試してみましたが、何

public void checkPreferences(){ 


    SharedPreferences preferences = getSharedPreferences("prefs", Context.MODE_PRIVATE); 

    String ChosenMethod = preferences.getString("chosenTeam", ChosenTeam); 


    //String ChosenMethod = preferences.getString("ChosenMethod", null); 
//getPWDFromSP() 


    //SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    //Log.v("myapp", "prefs = " + preferences); 
    //String ChosenMethod = preferences.getString("ChosenMethod", chosenMethod); 
    Log.v("myapp", "ChosenMethod = " + ChosenMethod); 

    if (ChosenMethod != null){ 

     Intent intent = new Intent(TheEvoStikLeagueActivity.this,Activity.class); 

    } 




} 


      @Override 

      public void onCreate(Bundle icicle) { 

        super.onCreate(icicle); 

        setContentView(R.layout.main); 
        checkPreferences(); 

答えて

0

"selectedTeam"は "ChosenTeam"と同じではありません。このコードは、あなたが整数またはブール値を保存したい場合は、あなたが方法 を編集することができますし、あなたが望むように、戻り値を聞かせて

private SharedPreferences sp; 
private Editor e; 

//create methods 
//save method(string) 
private void savePreferences(String key,String val){ 
    sp = getSharedPreferences("prefs", 0); 
    e = sp.edit(); 
    e.putString(key , val); 
    e.commit(); 
} 

//get method 
private String getPreferences(String key){ 
    sp = getSharedPreferences("prefs", 0); 
    String value = sp.getString(key, ""); 
    return value; 
} 

//save String 
savePreferences("yourKey","yourString"); 

//get Preferences 
getPreferences("yourKey") 

//check value saved or not 
if(getPreferences("yourKey").equals(null)){ 
    //do something 
    Log.i("value","null"); 
} 
else{ 
    //do something 
    Log.i("value","exists"); 
} 

役立ちます