Android Api 5.0上的ImageView onClickListener无法正常工作

时间:2015-11-02 13:24:07

标签: android android-imageview android-5.0-lollipop onclicklistener

我已经将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()

        }
    });

2 个答案:

答案 0 :(得分:0)

如果代码进入doInBackground,你是否尝试调试代码? 如果它运行,那么它们可能是HttpClient的一些问题,在Android 6中已弃用。 您可以先检查并确认这是否是HttpClient问题,如果是,则在您的应用程序gradle中添加以下行

    android {
        useLibrary 'org.apache.http.legacy'
    }

或者您也可以更改并实施HttpURLConnection

答案 1 :(得分:0)

将以下属性放在XML内部图像视图中

android:clickable =“true”