2013-08-26 112 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