Re: [問題] 關於 Widget 傳值

看板AndroidDev作者 (小恐龍)時間11年前 (2012/11/21 22:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
我看了一下你的程式 你在Activity裡寫入SharedPreferences的部份 final String mPerfName = "com.mewo.CountDownActivity"; SharedPreferences shp =getSharedPreferences(mPerfName, Context.MODE_WORLD_READABLE); SharedPreferences.Editor prefs = CountDownActivity.this.getSharedPreferences(mPerfName, 0).edit(); prefs.putString("DAT" +h, mTextView.getText().toString()); prefs.putLong("DAT" , h); prefs.commit(); 在AppWidgetProvider拿出SharedPreferences的部份 SharedPreferences mPref; SharedPreferences prefs = context.getSharedPreferences("DAT", Context.MODE_PRIVATE); SharedPreferences sharedata = context.getSharedPreferences("data", 0); long data = sharedata.getLong("DAT",0); ======================================================================== SharedPreferences其實也就是把資料寫成某種格式的檔案 然後提供你介面存入跟取出 getSharedPreferences()所帶的第一個參數,就是這個檔案的名稱 你現在把DAT這筆long寫在mPerfName也就是com.mewo.CountDownActivity裡 然後想到data找到DAT,當然找不到 函式不會用的話都可以到http://developer.android.com/ 查 甚至Eclipse裡面都能查到函式說明,參數不能亂帶阿 ※ 引述《han01122 (屎倒淋頭)》之銘言: : 如果我要先學習用Handler去寫SharedPreferences接收可行嗎? : 因為我一直接收不到傳過來的值,不知道哪裡有錯 : 程式碼如下: : final String mPerfName = "com.CountDownActivity"; : TextView mTextView = (TextView) CountDownActivity.this : .findViewById(R.id.result); : SharedPreferences.Editor prefs = CountDownActivity.this : .getSharedPreferences(mPerfName, 0).edit(); : prefs.putString("DAT" +h, mTextView.getText() : .toString()); : prefs.putLong("HH" , h); : prefs.commit(); : 在widget接收: : SharedPreferences prefs = context.getSharedPreferences("DAT", : Context.MODE_PRIVATE); : SharedPreferences h = context.getSharedPreferences("HH", 0); : views.setTextViewText(R.id.T1, ""+prefs.getLong("DAT",0)); : appWidgetManager.updateAppWidget(appWidgetId,views); : 請問我的方法用對了嗎?widget的執行結果只會顯示0 : 麻煩大大解惑了感恩! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.91.176 ※ 編輯: cooper6334 來自: 140.112.91.176 (11/21 22:39)
文章代碼(AID): #1GhEM9AC (AndroidDev)
文章代碼(AID): #1GhEM9AC (AndroidDev)