Android 在AsyncTask中;can';t在未调用Looper.prepare()的线程内创建处理程序;
我有一个从数据库接收数据的异步任务,下面是我的完整代码: 第26行 以下是tabs类代码段: 第115行Android 在AsyncTask中;can';t在未调用Looper.prepare()的线程内创建处理程序;,android,json,multithreading,android-asynctask,Android,Json,Multithreading,Android Asynctask,我有一个从数据库接收数据的异步任务,下面是我的完整代码: 第26行 以下是tabs类代码段: 第115行 显示扩展AsyncTaskPosdent P=getList(结果)的类的完整代码从doInBackground中删除此行,并将其添加到onPostExecute中。它将工作多少更多的logcat。它会准确地告诉您哪一行是有问题的代码行。这两个任务是独立的吗?或者第二个使用第一个的发布数据?如果是这样的话,你的代码是错误的。@Scinofikshvaku在出错时表示感谢。。但是你能告诉我
显示扩展AsyncTask
Posdent P=getList(结果)的类的完整代码
从doInBackground
中删除此行,并将其添加到onPostExecute
中。它将工作多少更多的logcat。它会准确地告诉您哪一行是有问题的代码行。这两个任务是独立的吗?或者第二个使用第一个的发布数据?如果是这样的话,你的代码是错误的。@Scinofikshvaku在出错时表示感谢。。但是你能告诉我错误代码是否正确。。因为我无法获得数据,如果不正确,我该怎么做
public class Tabasync2 extends AsyncTask<String, String, String> {
static Posdent tempposdent;
...
ArrayList<Posdent> aResults = new ArrayList<Posdent>();
public static Posdent send() {
return tempposdent;
}
@Override
protected void onPreExecute() {
...}
@Override
protected String doInBackground(String... sText) {
...
...
Posdent P = getList(result);
...
return result;
}
protected void onPostExecute(String v) {
super.onPostExecute(result);
Tabs t=new Tabs();
t.calling(aResults);
}
public Posdent getList(String name) {
tempposdent = new Posdent();
String name1 = null;
try {
JSONArray Jarray = new JSONArray(result);
int k;
for (k = 0; k < Jarray.length(); k++) {
try {
JSONObject Jasonobject = null;
Jasonobject = Jarray.getJSONObject(k);
String msg = Jasonobject.getString("message");
name1 = Jasonobject.getString("s_name");
Tabs t1=new Tabs();
t1.testing(name1);
tempposdent = new Posdent();
tempposdent.setStudent_name(name1);
tempposdent.setMessage(msg);
for(int j=0;j<aResults.size();j++)
{
if(aResults.get(j).hashCode()!=(tempposdent.hashCode())){
aResults.add(tempposdent);
}
}
} catch (JSONException js) {
js.printStackTrace();
}
}
} catch (Exception e) {
Log.e("log_tag", "Error parsing data" + e.toString());
}
Tabs t=new Tabs();
t.testing(name1);
return tempposdent;
}
}
java.lang.NullPointerException
at android.view.LayoutInflater.from(LayoutInflater.java:211)
at com.student.anurag.student_connect.Tabs$SearchResultAdapter.<init>(Tabs.java:144)
at com.student.anurag.student_connect.Tabs.calling(Tabs.java:115)
at com.student.anurag.student_connect.Tabasync2.onPostExecute(Tabasync2.java:99)
at com.student.anurag.student_connect.Tabasync2.onPostExecute(Tabasync2.java:26)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
switch(v.getId()) {
case R.id.postb:
new task1().execute();
new Tabasync2().execute(ep.getText().toString());
break;
}
public void calling(ArrayList<Posdent> aResults) {
searchResults.setAdapter(new SearchResultAdapter(context, aResults));
}
class SearchResultAdapter extends BaseAdapter {
int count;
Typeface type;
Context context;
private LayoutInflater layoutInflater;
private ArrayList<Posdent> sdetails = new ArrayList<Posdent>();
public SearchResultAdapter(Context context, ArrayList<Posdent> aResults) {
layoutInflater = LayoutInflater.from(this.context);
this.sdetails = aResults;
this.count = aResults.size();
this.context = context;
type = Typeface.createFromAsset(context.getAssets(), "fonts/book.TTF");
Log.d("Inside SearchResultAdapter", "" + count);
}