簡體   English   中英

Android-自定義小部件不會更新

[英]Android - Custom Widget doesnt update

我正在嘗試為我的應用制作小部件,但它沒有更新。 我只需要更改textview文本並在按下按鈕時打開一個活動,但是它們都不起作用...

編碼:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.newswidget);
    views.setTextViewText(R.id.tvNews, "prueba1");
    views.setString(R.id.tvNews, "setText", "prueba3");

    Intent intent = new Intent(context, DoctorChatAndroid.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
    views.setOnClickPendingIntent(R.id.ibNext, pendingIntent);

    for (int i = 0; i < appWidgetIds.length; i++) {
        appWidgetManager.updateAppWidget(i, views);
    }
}

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">

    <ImageButton
        android:id="@+id/ibNext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_media_ff"
        android:layout_alignParentRight="true"/>
    <ImageButton
        android:id="@+id/ibLast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_media_rew"
        android:layout_toLeftOf="@id/ibNext"/>
    <TextView
        android:id="@+id/tvNews"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/nwNoNewAnswer"
        android:layout_toLeftOf="@id/ibLast"/>

</RelativeLayout>

其他xml:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="3000"
    android:initialLayout="@layout/newswidget">
</appwidget-provider>

您在最后一行輸入錯誤:

appWidgetManager.updateAppWidget(i, views);

應該

appWidgetManager.updateAppWidget(appWidgetIds[i], views);

或者,更好的是,為每個循環做一個

for (int i : appWidgetIds)
    appWidgetManager.updateAppWidget(i, views);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM