我有一个启动屏幕,它运行一个从API下载数据的asyncTask
。在该任务的OnPostExecute
上,我运行下一个asyncTask
来发送存储的电子邮件。完成后,我需要一个AlertDialog
弹出一个ok按钮,以便用户知道下载完成。我使用了这个SO问题来尽我所能:
AsyncTask内部的Android AlertDialog
现在,当我尝试向对话框添加属性时,我得到一个NullPointerException:
public class JSONParser extends AsyncTask<String, String, JSONObject> {
Context c;
public JSONParser(int api,Context c) {
this.api= api;
this.c = c;
}
...
protected void onPostExecute(JSONObject result) {
JSONObject output = new JSONEmailParser(c).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, new String[] {null,null,null,null}).get();
}
}
public class JSONEmailParser extends AsyncTask<String, String, JSONObject> {
Context c;
AlertDialog.Builder builder;
public JSONEmailParser(Context c){
this.c = c;
}
protected void onPreExecute(int api){
builder = new AlertDialog.Builder(SplashScreen.this);
}
...
protected void onPostExecute(JSONObject result) {
setLastUpdate();
builder.setTitle("Sales Toolkit");
builder.setCancelable(false);
builder.setMessage("Download Complete");
builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
endSplash();
}
});
builder.show();
}
}
<code>生成器上出现错误。setTitle(“销售工具包”)
似乎没有调用onPreExecute()
方法。如果你真的不需要在onPostExecute()
方法之前的任何地方使用构建器
,我建议直接移动
builder = new AlertDialog.Builder(SplashScreen.this);
到< code>onPostExecute()方法中。
不要使用. get()来执行AsyncTask,因为它将不再是异步的。而onPreExecute不会被调用?
< code > async task # onPreExecute()不接受int参数。由于您的方法具有错误的签名,它可能永远不会被调用,因此< code>builder永远不会被设置。这是为什么应该使用< code>@Override注释的典型例子。
我用RSA算法加密和解密。当我加密一个字符串时,它工作正常。当我解密时,我得到一个错误。下面,我发布我的代码。
我试图实现一个排序和未排序的数组列表。两者都扩展了一个名为AbstractArrayMyList的类,该类包含常见的操作/实现——toString、clear等。。。。 下面是我的AbstractArrayMyList代码(它实现了我定义的通用接口) 我选择对elementData进行保护,以便排序和未排序的专用数组列表可以访问并对其执行操作。这是我对排序数组列表的声明/代码 这一切都很好。然而,
我有一个带有复选框的列表视图。对于每个复选框(大约有3个),它都有一个特定的AsyncTask。 我从来不知道用户选择了什么复选框,所以我不能把AlertDialog放在异步任务的末尾,因为我从来不知道用户是只选择了一个复选框,还是两个或三个。 因为AsyncTask是分步执行的(只有当第一个Async任务完成时,第二个Async任务才开始),所以我考虑在所有任务的末尾添加一个带有AlertDia
我编写了这段代码,将整个以10为基数的数字转换成二进制。我相信代码就是它所需要的一切,但我无法让工作。 我在这个网站和其他网站上花了几个小时,尝试了无数次的修改,但都没有用。 我已经让代码无错误地编译,但一旦我运行它并输入程序就会崩溃。 下面是代码: 这些是java在我输入数字时抛出的异常。 我希望这是足够的信息。
我正在学习“放心框架”。 我使用http://ziptasticapi.com免费的API为我的演习。 当我打电话: 我得到以下字符串: {“国家”:“美国”、“州”:“正义与发展党”、“城市”:“阿达克”} as响应字符串值。 当我尝试时: 我突然想到: JAVAlang.IllegalStateException:无法分析对象,因为响应中未指定支持的内容类型。内容类型为“文本/html”;字符