這是我在這裏的第一篇文章,所以對我來說很容易lol!好吧,所以我是新來的,我一直在這個代碼上工作幾天,我似乎無法得到這個首選項的概念。我在這個網站的任何地方都搜索過,我相信這些代碼應該可以正常使用我在本網站和其他網站上看到的所有信息。我看過無數的例子,但仍然不明白我做錯了什麼。Android SharedPreferences強制關閉應用程序
這是我的主要活動的一小部分,當用戶啓動應用程序時首先啓動。我有一個選項菜單上的另一項活動,用於計算當前日期和用戶所選日期之間的差異,我希望將生成的整數傳遞到主活動並顯示其值的Toast。
public class SmokeStopperActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
public static final String PREFERENCE_FILENAME = "DaysPassed";
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
這是我的第二個活動的片段,它計算整數diffDays的值。
long diff = milis2 - milis1;
int diffDays = (int) (diff/(24 * 60 * 60 * 1000) + 30);
Toast.makeText(SetDate.this, (diffDays),
Toast.LENGTH_LONG).show();;
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor prefEditor1 = preference.edit();
prefEditor1.putInt("daysPassed", diffDays);
prefEditor1.commit();
我有我的第二個活動送diffDays整數的吐司,當用戶在第二活動的前面部分按下一個按鈕,並計算做工精細。第二項活動中的Toast顯示我想要的整數。問題是,當我使用此代碼
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
在我的第一個活動它強制關閉打開。如果我從第一項活動中刪除此代碼,則應用程序將打開,這對我沒有任何意義。我在這裏查看的所有其他代碼似乎完全按照我沒有遇到的問題使用此代碼段,因此我不明白我做錯了什麼。任何幫助將不勝感激。我有一種感覺,這是我愚蠢的,我繼續俯瞰。可能是因爲看了幾個小時的代碼大聲笑!
logcat說什麼? – Snicolas 2012-03-17 05:24:33