- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的小部件,我尝试在 onUpdate 方法之外更新它的内容。我创建了:context 和 appWidgetManager 字段变量,编译器没有给出任何错误,但是我在声明 AppWidgetManager 的那两行收到 NullPointerException。
有人能帮我理解为什么将这些变成字段变量仍然会产生 NPE 吗?
private void ref(int z) {
views.setTextViewText(R.id.igePrint, ige[z].azIge);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
//Log.e("<<check value>>", "the value of z is: " + z);
}
还有一些其他的代码:
package com.example.napiige;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.TextView;
public class MainActivity extends AppWidgetProvider {
RemoteViews views;
String azIge;
String igeBack;
static MainActivity[] ige = new MainActivity[3];
int x;
public static ComponentName thisWidget;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
x = (Integer)msg.obj;
ref(x);
}
};
Context context;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
views = new RemoteViews(context.getPackageName(), R.layout.example_appwidget);
thisWidget = new ComponentName(context, MainActivity.class);
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
String ig1 = context.getString(R.string.ige1);
String ig2 = context.getString(R.string.ige2);
String ig3 = context.getString(R.string.ige3);
ige = new MainActivity[3];
ige[0] = new MainActivity();
ige[1] = new MainActivity();
ige[2] = new MainActivity();
ige[0].azIge = ig1;
ige[1].azIge = ig2;
ige[2].azIge = ig3;
Runnable myRunnable1 = new Task();
Thread myThread = new Thread(myRunnable1);
myThread.start();
appWidgetManager.updateAppWidget(thisWidget, views);
}
}
private void ref(int z) {
views.setTextViewText(R.id.igePrint, ige[z].azIge);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
//Log.e("<<check value>>", "the value of z is: " + z);
}
class Task implements Runnable {
@Override
public void run() {
for (int i = 0; i < 3; i++) {
try {
Thread.sleep(3000);
// refreshing the text inside the loop calling the above refreshTextView method
int data = i;
Message msg = handler.obtainMessage(1, (int)data);
handler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
最佳答案
appWidgetManager
字段在那里为空,因为您从未为其分配值。
关于android - AppWidgetManager 在 onUpdate 之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20718207/
我正在尝试将 AppWidget 添加到我的应用程序中,但似乎 android 开发团队提供了所需的类,同时限制了它们的使用(一如既往地缺乏文档)。似乎我发现的唯一方法(为了获得功能齐全的 AppWi
我有一个简单的小部件,我尝试在 onUpdate 方法之外更新它的内容。我创建了:context 和 appWidgetManager 字段变量,编译器没有给出任何错误,但是我在声明 AppWidge
我正在开发一个应用小部件,它使用 RemoteViews 来显示一个 ListView。为了简单起见,我将对 appwidget 的功能进行类比: 用户将选择将应用程序小部件添加到主屏幕。选择小部件后
我正在构建一个自定义启动器。我已经按照步骤在 Android 文档中提到用于托管 App Widgets 以及浏览默认启动器源代码。但是,当我使用作为 AppWidgetManager.ACTION_
我从小部件用户那里收到有关 android.os.TransactionTooLargeException 的报告: android.os.TransactionTooLargeException a
我有三个关于App Widget Options的问题: 1) 如果我想向应用小部件的选项添加选项值,我应该始终首先使用 getAppWidgetOptions(int) 检索小部件选项,然后操纵 B
我有一个应用程序小部件,我正尝试从 Activity 中更新它。 为此,我需要 appwidget id。 我使用了 AppWidgetManager.getAppWidgetIds 但它总是返回一个
我在通过 AppWidgetManager.updateAppWidget 手动更新我的小部件时遇到了问题。平台为 Android 2.2。 代码如下: 我在 list 中为现有 Activity 额
我正在尝试获取我的小部件的所有 ACTIVE 实例的列表。在我的 AppWidgetProvider 的 OnUpdate 方法中,我正在执行以下操作: // Get all ids Componen
我的小部件由 2 个按钮和一个显示数据的 ListView 组成。大多数情况下,当小部件提供程序的 onUpdate 方法被调用时,一切都会正常加载并且大家都很高兴。 但是我注意到有时在调用更新方法后
我在我的 Android 应用程序中定义了一个小部件,该小部件映射到由配置 Activity 选择的特定电灯开关。小部件的每个实例都可以映射到不同的灯开关,点击小部件可以打开和关闭灯。以下是设置小部件
我是一名优秀的程序员,十分优秀!