Android 在Textchanged上运行AsyncTask时出错

Android 在Textchanged上运行AsyncTask时出错,android,apache,android-asynctask,Android,Apache,Android Asynctask,我在一个片段中有一个EditText,用户将在其中输入用户名;当用户输入名称时,我希望使用onTextChanged事件向服务器发出Http Post请求,并检查该用户名是否可用:它将返回一个状态代码,指示该用户名是否可用。 当我运行它时,它会给我一个错误。原因:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序 private final TextWatcher mTextEditorWatcher=new TextWatch

我在一个片段中有一个EditText,用户将在其中输入用户名;当用户输入名称时,我希望使用onTextChanged事件向服务器发出Http Post请求,并检查该用户名是否可用:它将返回一个状态代码,指示该用户名是否可用。 当我运行它时,它会给我一个错误。原因:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序

private final TextWatcher mTextEditorWatcher=new TextWatcher(){
更改前文本之前的公共void(字符序列s、int start、int count、int after){
//当没有输入密码时
}
public void onTextChanged(字符序列、int start、int before、int count){
asycstuffs n=新的asycstuffs();
n、 executeOnExecutor(AsyncTask.THREAD\u POOL\u EXECUTOR,0);
}
公共无效后文本已更改(可编辑){
}
};
私有类asycstuffs扩展了AsyncTask{
@凌驾
受保护的整数doInBackground(整数…参数){
BufferedReader in=null;
字符串s=Username.getText().toString();
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPut httput=新的HttpPut(“http://my 网址“);
字符串responseBody=“”;
HttpResponse响应=null;
试一试{
httput.setEntity(新的StringEntity,“UTF-8”);
//执行HTTP Post请求
response=httpclient.execute(httput);
// /
HttpEntity=response.getEntity();
Log.d(“响应正常”,“用户名:/”+response.getStatusLine().getStatusCode());
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}捕获(例外e){
e、 printStackTrace();
}
//TODO自动生成的方法存根
返回null;
}
}

您正在尝试访问doInBackground()方法中的ui元素

 String s= Username.getText().toString();
我认为您在这里遇到了错误,请尝试将字符串作为参数传递,
同时发布您的logcat值

好的。您对此有什么问题吗?我遇到的错误是:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序,因为我看不出这是哪一行的错误,只是关于编码样式和可读性的一般说明--类名应该是大写的,而成员(变量)应该是小写的。所以“用户名”不是“用户名”,而“AsyncStuff”不是“AsycStuff”。遵循这些约定将使您的代码更容易为其他人所遵循。
 String s= Username.getText().toString();