Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 如何在小部件的TextView上设置文本?_Java_Android_Textview_Android Appwidget - Fatal编程技术网

Java 如何在小部件的TextView上设置文本?

Java 如何在小部件的TextView上设置文本?,java,android,textview,android-appwidget,Java,Android,Textview,Android Appwidget,在我的应用程序中,我想在单击按钮后将“setText”设置为TextView。但是小部件崩溃了!而且文本没有改变,我确信我的按钮点击它工作正常。但当我试图运行“setSomeText();”方法时,应用程序还是崩溃了。 我认为这是因为我没有在“OnUpdate”覆盖方法中执行它。 这是我的密码: public class WidgetClock extends AppWidgetProvider{ public RemoteViews views; @Override

在我的应用程序中,我想在单击按钮后将“setText”设置为TextView。但是小部件崩溃了!而且文本没有改变,我确信我的按钮点击它工作正常。但当我试图运行“setSomeText();”方法时,应用程序还是崩溃了。 我认为这是因为我没有在“OnUpdate”覆盖方法中执行它。 这是我的密码:

public class WidgetClock extends AppWidgetProvider{


    public   RemoteViews views;


    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {


        for (int i = 0; i < appWidgetIds.length; i++) {

            views = new RemoteViews(context.getPackageName(), R.layout.widget_clock);

            Intent intent = new Intent("enterAction").addCategory("enterAction");
            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
            views.setOnClickPendingIntent(R.id.bEnter_Widget, pendingIntent);

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

    }


    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        System.out.println("action:" + action);

        if ("enterAction".equals(action)) {

            System.out.println("views = " + views);
        if(views != null){
                    views.setTextViewText(R.id.txWorkName_widget, "Works!");

        }

        } else {
            super.onReceive(context, intent);

        }
    }


}
公共类WidgetClock扩展了AppWidgetProvider{
公众意见;
@凌驾
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,
int[]appWidgetIds){
for(int i=0;i
我得到的“视图”为空。


感谢帮助人员

在onRecieve()调用时,您的视图为空,因此请管理您的代码,以便在onRecieve调用时视图将初始化。使用视图静态和公共,然后检查,可能会起作用。我知道如果我使用
视图。setTextViewText(R.id.txOnCLock\u小部件)在“onUpdate”上运行。但是如何在“onUpdate”方法之外处理它呢?首先检查
views==null
。如果不为null,则只执行您的工作。@Rohit5k2好的,现在它没有崩溃。但在textView上也没有结果