2014-11-05 103 views
0

OnCreate我有這個產品,我想在完成後刪除存儲的數據,爲preferences.edit().remove("Productsku").commit();我把它們放在正確的地方?當我做了相關的「內容」,我查了logcat的東西,它劇照帶給我裏面的「if (productsku != null)刪除共享首選項數據

public class ProductActivity extends FragmentActivity implements 
    OnFocusChangeListener, OnClickListener, NumberPickerDialogListener, 
    AddedToCartDialogListener { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    Log.d(getClass().getSimpleName(), "onCreate"); 

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

    SharedPreferences preferences1 = PreferenceManager.getDefaultSharedPreferences(this); 
    content=preferences1.getString("Content", ""); 

    SharedPreferences preferences = getSharedPreferences("myPref",MODE_PRIVATE); 
    productsku=preferences.getString("Productsku", ""); 
    Log.d("Productsku",productsku.toString()); 
    if(productsku !=null) 
    { 
     Log.d("StartProductsku","OK"); 
     new GetProductDetailsTask2().execute(); 
     preferences.edit().remove("Productsku").commit(); 
     Log.d("EndProductsku","OK"); 
    } 
    else 
    { 
     if(content !=null) 
     { 
      Log.d("StartContent","OK"); 
      new GetProductDetailsTask1().execute(); 
      preferences1.edit().remove("Content").commit(); 
     } 

private class GetProductDetailsTask2 extends AsyncTask<String, String, Void> { 
    @Override 
    protected void onPreExecute() { 
     layoutProgress.setVisibility(View.VISIBLE); 
    }; 

    @Override 
    protected Void doInBackground(String... params) { 
     if(productsku ==null) 
     { 
      Log.d("Productsku","inside"); 
      product = Product.getSelected(); 
      product.setId(productsku); 
      JSONService.updateProductDetails(product); 
     } 
     else 
     { 
      product=JSONService.getProductDetails(productsku); 

     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     updateUI(); 
     layoutProgress.setVisibility(View.GONE); 
     shortDescription.setVisibility(View.VISIBLE); 
     description.setVisibility(View.VISIBLE); 
    } 
} 
+0

後的全部代碼。 – 2014-11-05 06:30:05

回答

2

你的問題在這裏:

SharedPreferences preferences = getSharedPreferences("myPref",MODE_PRIVATE); 
productsku=preferences.getString("Productsku", ""); 

getString第二個參數是默認值(如果首選項未找到,則返回值)。試着做以下幾點:

productsku=preferences.getString("Productsku", ""); 
Log.d("Productsku",productsku.toString()); 
if(!productsku.equals("")) 
{ 
    Log.d("StartProductsku","OK"); 
    new GetProductDetailsTask2().execute(); 
    preferences.edit().remove("Productsku").commit(); 
    Log.d("EndProductsku","OK"); 
} 

希望它可以幫助