目前,我正试图从网上下载一些内容,并希望将其推送到ListView:
我创建了一个Runnable来执行下载内容部分:
Runnable postTest = new Runnable() {
@Override
public void run() {
try {
URL u = new URL("192.168.1.1/getList.php");
ContentValues c = new ContentValues();
c.put("token", networkCommunication.getToken());
String k = networkCommunication.downloadContent(u, c);
getParent().runOnUiThread(
new Runnable() {
public void run() {
Toast.makeText(Main.this, k, Toast.LENGTH_SHORT).show();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
};
代码在String k = networkCommunication.downloadContent(u, c);
然而," K"变量在" Run"中无法访问方法,我也尝试将k变量更改为" Hello world" (即在完成下载内容时打印hello world),然后发生另一个异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.runOnUiThread(java.lang.Runnable)' on a null object reference
如何解决这个问题?
答案 0 :(得分:1)
因为getParent()为NULL。根据文件:
public final Activity getParent()从:API Level 1
如果此视图是嵌入式子级,则返回父活动。
您可以参考这个类似的问题:Android Activity.getParent() always returning null