2013-09-05 4 views
0

У меня есть вопрос о публикации в here, но я ничего не получил, поэтому я решил задать новый вопрос для поиска другого решения.android: не удалось удалить и удалить файл sharedpreferences

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

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

и

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

, но я думаю, что это не работает. это моя первая деятельность, используя намерение:

public class TerbaruSimasCard extends ListActivity { 
    String nama1,alamat1,ket1,img_id1,telp1,begdate1,enddate1; 

    private ProgressDialog dialog; 
    private ArrayList<TerbaruModel>ListTerbaru; 
    ListView list; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     //hide title bar 
      BasicDisplaySettings.toggleTaskBar(TerbaruSimasCard.this, false); 
      //show status bar 
      BasicDisplaySettings.toggleStatusBar(TerbaruSimasCard.this, true); 

      SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
      settings.edit().clear().commit(); 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.terbarusimascard); 
      ListTerbaru= new ArrayList<TerbaruModel>(); 
      new TerbaruAsyncTask().execute(); 
    } 
    public class TerbaruAsyncTask extends AsyncTask<Void, Void, String> { 
     String url = ("http://www.abc.xyz/sc_merchant.htm?s=3&d=25"); 

     public TerbaruAsyncTask() { 
      this.url=url; 
     } 

     protected void onPreExecute(){ 
      super.onPreExecute(); 
      dialog = ProgressDialog.show(TerbaruSimasCard.this,"", "melakukan pengambilan data..."); 
     } 
     @Override 
     protected String doInBackground(Void... params) { 
      String result = ""; 
      try { 
       result= Connection.get(url); 
      } catch (Exception e){ 
       result = ""; 
       Log.d("test", e.getMessage()); 
      } 
      return result; 
     } 

    @Override 
    protected void onPostExecute (String result){ 
     super.onPostExecute(result); 
     fetchResponse(result.replace("\n","").trim()); 
     dialog.dismiss(); 
     ListView lv = getListView(); 

     lv.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       Intent detail= new Intent (TerbaruSimasCard.this, TerbaruDetail.class); 

       detail.putExtra("nama", nama1); 
       detail.putExtra("alamat",alamat1); 
       detail.putExtra("ket", ket1); 
       detail.putExtra("telp",telp1); 
       detail.putExtra("begdate", begdate1); 
       detail.putExtra("enddate",enddate1); 
       detail.putExtra("img_id", img_id1); 

       System.out.println(nama1); 

       startActivity (detail); 
      } 
     }); 
    } 


    } 

private void fetchResponse (String result){ 
    if (!result.equals("")){ 
     try { 
      JSONArray jsonArray = new JSONArray(result); 
      TerbaruModel LT=null; 
      for (int i= 0; i < jsonArray.length(); i++) { 
       JSONObject jsonObject= jsonArray.getJSONObject (i); 

       LT= new TerbaruModel (jsonObject.optString("kat"), 
         img_id1=jsonObject.optString("img_id"), 
         nama1= jsonObject.optString("nama"), 
         alamat1=jsonObject.optString("alamat"), 
         ket1=jsonObject.optString("ket"), 
         jsonObject.optString("tgl"), 
         jsonObject.optString("accday"), 
         telp1=jsonObject.optString("telp"), 
         begdate1=jsonObject.optString("begdate"), 
         enddate1=jsonObject.optString("enddate") 
         ); 
       ListTerbaru.add(LT); 
       list=(ListView)findViewById(android.R.id.list); 



setListAdapter (new TerbaruAdapter(this, ListTerbaru)); 
     } 

это для деталей:

public class TerbaruDetail extends Activity { 
    String nama1,alamat1,ket1,img_id1,telp1,begdate1,enddate1; 
    @Override 
    public void onCreate (Bundle savedInstanceState){ 

     SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0); 
     settings.edit().clear().commit(); 
     //hide title bar 
     BasicDisplaySettings.toggleTaskBar(TerbaruDetail.this, false); 
     //show status bar 
     BasicDisplaySettings.toggleStatusBar(TerbaruDetail.this, true); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.detailviewer); 

     Intent detail= getIntent(); 
     nama1=detail.getStringExtra("nama"); 
     alamat1= detail.getStringExtra("alamat"); 
     ket1= detail.getStringExtra("ket"); 
     img_id1= detail.getStringExtra("img_id"); 
     telp1= detail.getStringExtra("telp"); 
     begdate1= detail.getStringExtra("begdate"); 
     enddate1= detail.getStringExtra("enddate"); 

     System.out.println(nama1+"nama"); 
     TextView detail_phone=(TextView) findViewById(R.id.detail_phone); 
     TextView detail_begdate=(TextView) findViewById(R.id.begdate); 
     TextView detail_enddate=(TextView) findViewById(R.id.endate); 
     TextView detail_name =(TextView) findViewById(R.id.detail_name);  
     TextView detail_adress =(TextView) findViewById(R.id.detail_adress);  
     TextView keterangan =(TextView) findViewById(R.id.keterangan); 
     ImageView detail_img_id= (ImageView) findViewById(R.id.img_kategori); 


     detail_name.setText(nama1); 
     detail_phone.setText(telp1); 
     detail_begdate.setText(begdate1); 
     detail_enddate.setText(enddate1); 
     detail_adress.setText(alamat1); 
     keterangan.setText(ket1); 

} 

ответ

0

Если Вы не возражаете, просто удалите приложение затем перезагрузите APK.

Из того, что я знаю, значение Shared Preferences останется до тех пор, пока вы не удалите приложение.

Если выше не работает, то попробуйте удалить вручную

/data/data/com.package.name/shared_prefs/PREFS_NAME.xml

+0

У меня есть кэш и его удаление, но мои общие преимущества все еще сохраняются в устройстве –

+0

ok см. мое обновление – meda

+0

, если попытаться удалить с помощью ddms ... но это все еще сохраняются на моем устройстве. –

0

SharedPreferences.Editor.clear() не удаляет sharedpreferences файл, он очищает содержимое только в этом файле.

Если вы действительно хотите удалить этот файл, необходимо использовать операцию с файлом, а расположение файла sharedprefereces - /data/data/com.yourpackage.name/shared_prefs/filename.xml. Кстати, вам лучше использовать намерение отправлять данные между действиями.

+0

, если попытаться удалить через ddms ... но он по-прежнему сохраняется на моем устройстве. –

0

Если вы просто хотите очистить свои данные (потому что это повреждено или что-то еще), вы можете сделать это вручную с главного экрана. настройка -> менеджер приложений -> «ваше приложение» -> очистить данные

Смежные вопросы