我已经将OnclickListener设置为ImageView,当点击执行asyncTask时,它在运行低于Api 5.0的设备上运行良好,但在Android Api 5.0设备中根本不起作用。
异步任务:
public class SendName extends AsyncTask<String, String, String> {
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... strings) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://example.com/web.php");
String user = "John";
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("user", user));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String lengthOfFile) {
}
}
ImageView XML:
<ImageView
android:id="@+id/send"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/send" />
OnClickListener:
ImageView send_img = (ImageView) findViewById(R.id.send);
send_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new sendName().execute()
}
});
答案 0 :(得分:0)
如果代码进入doInBackground,你是否尝试调试代码? 如果它运行,那么它们可能是HttpClient的一些问题,在Android 6中已弃用。 您可以先检查并确认这是否是HttpClient问题,如果是,则在您的应用程序gradle中添加以下行
android {
useLibrary 'org.apache.http.legacy'
}
或者您也可以更改并实施HttpURLConnection
答案 1 :(得分:0)
将以下属性放在XML内部图像视图中
android:clickable =“true”