java - AppWidget 布局未显示, "widget failed to load"

标签 java android layout widget

大家好,我想知道为什么当我将小部件拖到主屏幕时,它只显示“小部件加载失败”而不是我的小部件布局。我需要帮助。

Widget.java

package com.fyp.atms;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
import android.widget.Toast;

public class Widget extends AppWidgetProvider{

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        // TODO Auto-generated method stub
        super.onUpdate(context, appWidgetManager, appWidgetIds);

    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        // TODO Auto-generated method stub
        super.onDeleted(context, appWidgetIds);
        Toast.makeText(context, "Widget deleted!", Toast.LENGTH_SHORT).show();
    }

}

widget.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="114dp"
        android:layout_height="40dp" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="100" >
        <TableLayout
            android:layout_width="130dp"
            android:layout_height="80dp">

        <EditText
            android:id="@+id/wid_ToTranslate"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <Spinner
            android:id="@+id/spinner2"
            android:layout_width="114dp"
            android:layout_height="40dp" />

        </TableLayout>
        <Button
            android:id="@+id/wid_trans"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_weight="50"
            android:text="Translate" />
    </LinearLayout>

    <TextView
        android:id="@+id/wid_Translated"
        android:layout_width="130dp"
        android:layout_height="35dp"
        android:ems="10" />

</LinearLayout>

mywidget.xml(AppWidgetProvider)

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="274dp"
    android:minHeight="200dp"
    android:initialLayout="@layout/widget"
    android:updatePeriodMillis="1800000">


</appwidget-provider>

最佳答案

您不能在小组件中使用 SpinnerEditText。这是因为每个 Widget 布局都必须基于 RemoteViews。遵循支持的每个布局:

布局类

FrameLayout
LinearLayout
RelativeLayout
GridLayout

小部件类

AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper

Docs 中了解更多相关信息.

关于java - AppWidget 布局未显示, "widget failed to load",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26699050/

相关文章:

java - 寻找 H 指数背后的直觉

java - AsyncTask 在 Android 中无法正确重启

javascript - 动态填充的选择框与 IE 7 中的相邻 div 元素重叠

java - TextView 在相对布局中不显示全文

java - mysql和tomcat导致服务器过载

java - Eclipse 自动显示相同的类名

Javalogging.properties文件仅打印特定的记录器

android - 在应用程序更新时更新 Firebase 实例 ID

方向改变的android fragment 问题

javascript - jquery:自动调整大小绝对定位子 div