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