我有一個只包含一個textView的小部件,我希望能夠根據用戶偏好編輯textView的顏色,大小和字體。但似乎更新小部件的唯一方法是使用RemoteView。這帶來兩個問題對我來說:編輯小部件的文本,而不受RemotView的限制
1)這將只允許文字,色彩編輯,和大小(但編輯尺寸只有在API 16個可用,我支持11及以上)
2.)這不允許我編輯字體。
幸運的是,textView類http://developer.android.com/reference/android/widget/TextView.html允許我做我想做的一切。有沒有什麼辦法可以在我的widget佈局中的textView上調用這些方法,而不受RemoteView類的限制。
所有幫助非常感謝,這裏是我的代碼到目前爲止。
RemoteViews v = new RemoteViews(getPackageName(), R.layout.widget);
v.setTextViewText(R.id.widgetTextViewLineOne, widgetTextViewLineOneText);
v.setTextColor(R.id.widgetTextViewLineOne, widgetColor);
manager.updateAppWidget(awID, v);
感謝您的幫助,但我需要能夠編輯顏色,大小和字體。必須有方法通過遠程視圖調用這些textView方法,但我不知道如何。 – Richard
因此,要調用方法,您只需從RemoteViews調用setFloat,setInt等方法...第一個參數是要更改的RemoteView內的對象ID,第二個參數只是String名稱你想調用TextView的方法,第三個參數是你給String方法的參數。所以我在上面的答案中寫的是等於widgetTextViewLineOne.setTextSize(textSize)...所以你需要做的是從TextView類中找到你需要的方法,並以這種方式調用它 – CodeJunkie
這適用於除了設置字體。我似乎無法找到支持這一點的方法。有一個嗎? – Richard