2013-08-26 115 views
0

首先,我在我的應用程序中使用共享首選項來將數據從一個活動發送到另一個活動,當在第一個活動中單擊listview時,但當我單擊另一個列表時,其他清單與第一個清單相同。
當我嘗試使用intent時,它仍然是一樣的。我已經使用:無法刪除SharedPreferences

settings.edit().clear().commit(); 

settings.edit().remove().commit(); 

,但它不工作。有什麼不對嗎?這是我的第一個活動:

lv.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
//    SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
//    settings.edit().clear().commit(); 
//    settings.edit().remove("nama").commit(); 
//    settings.edit().remove("alamat").commit(); 
//    settings.edit().remove("ket").commit(); 
//    settings.edit().remove("img_id").commit(); 
//    settings.edit().remove("telp").commit(); 
//    settings.edit().remove("begdate").commit(); 
//    settings.edit().remove("enddate").commit(); 

       Intent detail= new Intent (TerbaruSimasCard.this, TerbaruDetail.class); 
       detail.putExtra("nama", nama); 
       detail.putExtra("alamat",alamat); 
       detail.putExtra("ket", ket); 
       detail.putExtra("telp",telp); 
       detail.putExtra("begdate", begdate); 
       detail.putExtra("enddate",enddate); 
       detail.putExtra("img_id", img_id); 

//    SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
//    settings.edit().clear().commit(); 
//    startActivity (detail); 
//    Intent detail= new Intent (TerbaruSimasCard.this, TerbaruDetail.class); 
       startActivity (detail); 

//    SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
//    SharedPreferences.Editor editor = settings.edit(); 
//    editor.putString("nama", nama); 
//    editor.putString("alamat",alamat); 
//    editor.putString("ket", ket); 
//    editor.putString("telp",telp); 
//    editor.putString("begdate", begdate); 
//    editor.putString("enddate",enddate); 
//    editor.putString("img_id", img_id); 
//    editor.commit(); 
//    System.out.println(nama+"nama"); 

      } 

這是我的第二個活動:

Intent detail= getIntent(); 
     nama=detail.getStringExtra("nama"); 
     alamat= detail.getStringExtra("alamat"); 
     ket= detail.getStringExtra("ket"); 
     img_id= detail.getStringExtra("img_id"); 
     telp= detail.getStringExtra("telp"); 
     begdate= detail.getStringExtra("begdate"); 
     enddate= detail.getStringExtra("enddate"); 

//  SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
//  settings.edit().clear().commit(); 
//  settings.edit().remove("nama").commit(); 
//  settings.edit().remove("alamat").commit(); 
//  settings.edit().remove("ket").commit(); 
//  settings.edit().remove("img_id").commit(); 
//  settings.edit().remove("telp").commit(); 
//  settings.edit().remove("begdate").commit(); 
//  settings.edit().remove("enddate").commit(); 
//  nama= settings.getString("nama", null); 
//  alamat = settings.getString("alamat", null); 
//  ket= settings.getString("ket", null); 
//  img_id = settings.getString("img_id", null); 
//  telp= settings.getString("telp", null); 
//  begdate = settings.getString("begdate", null); 
//  enddate = settings.getString("enddate", null); 

我有力量停止,清除我的應用程序的緩存和卸載它,但它仍然無法正常工作。 我的方法有什麼問題嗎?

+0

你在哪裏初始化這些變量..是你在第二個列表中正確初始化它們或者使用從第一個活動傳遞的相同變量來初始化它..檢查它.. – bakriOnFire

+0

使用意圖將數據從一個活動發送到另一個。 – benestar

+0

你想要什麼?你想清除「SharePreference」,還是不能將數據從「SharePreference」從一個活動傳遞給另一個活動? –

回答

1

如果您想通過clearing刪除從SharePreference關鍵的editor

editor.clear(); 
    editor.commit(); 
1

看看這段代碼:

settings.edit()

每次使用這個代碼的時候,會有一個新的編輯器。所以你應該這樣做:

Editor editor = setting.edit(); 
editor.remove("nama"); 
...... 
editor.remove("enddate"); 
editor.commit(); 

好運。 enter code here