Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 录制安卓主屏幕小部件不会';我第二次不工作了_Java_Android_Widget - Fatal编程技术网

Java 录制安卓主屏幕小部件不会';我第二次不工作了

Java 录制安卓主屏幕小部件不会';我第二次不工作了,java,android,widget,Java,Android,Widget,我是Android新手(从昨天开始:) 我正在尝试制作一个带有文本视图的简单主屏幕小部件,当你点击它时,它会改变它的值。 事情进展得不太顺利。它只在我轻触它3次后才工作,然后它工作一次,再也不工作了。此外,调试器总是在我第一次“跳过”后崩溃 舱单: <application android:icon="@mipmap/ic_launcher" android:label="@string/app_name"> <receiver android:name

我是Android新手(从昨天开始:)
我正在尝试制作一个带有文本视图的简单主屏幕小部件,当你点击它时,它会改变它的值。
事情进展得不太顺利。它只在我轻触它3次后才工作,然后它工作一次,再也不工作了。此外,调试器总是在我第一次“跳过”后崩溃

舱单:

<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">
    <receiver android:name=".GeeDeeBeeDee"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="android.appwidget.action.APPWIDGET_CLICK" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/gee_dee_bee_dee_info" />
    </receiver>
</application>

有人能帮忙吗?提前谢谢。

我相信问题出在您的
onUpdate()
方法中。您可能需要检查此链接:

我希望它能帮助你

public class GeeDeeBeeDee extends AppWidgetProvider {

private int DayType = 0;

public static String APPWIDGET_CLICK = "android.appwidget.action.APPWIDGET_CLICK";

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    // There may be multiple widgets active, so update all of them
    final int N = appWidgetIds.length;
    for (int i = 0; i < N; i++) {
        updateAppWidget(context, appWidgetManager, appWidgetIds[i]);
    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,int appWidgetId)
{
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.gee_dee_bee_dee);

    Intent intent = new Intent(APPWIDGET_CLICK);
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, appWidgetId, intent, 0);
    views.setOnClickPendingIntent(R.id.appwidget_text, pendingIntent );

    appWidgetManager.updateAppWidget(appWidgetId, views);
}

@Override
public void onReceive(Context context, Intent intent)
{
    int widgetId = 0;

    if (APPWIDGET_CLICK.equals(intent.getAction()))
    {

        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);

        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.gee_dee_bee_dee);

        if(DayType == 0)
            remoteViews.setTextViewText(R.id.appwidget_text, "0");
        else if(DayType == 1)
            remoteViews.setTextViewText(R.id.appwidget_text, "1");
        else if(DayType == 2)
            remoteViews.setTextViewText(R.id.appwidget_text, "2");

        if(DayType > 2)
            DayType = 0;

        Bundle extras = intent.getExtras();
        if(extras!=null)
        {
            widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
        }

        if(widgetId > 0)
            appWidgetManager.updateAppWidget(widgetId, remoteViews);
    }
    else
        super.onReceive(context, intent);
}