单击按钮不能在第一次单击时工作

时间:2017-08-02 17:18:58

标签: android

当我点击第一次单击按钮时单击功能不起作用,但第二次单击单击功能工作。我不知道我的代码有什么问题。请建议我正确的方式。提前致谢

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
            ImageView deletelist = (ImageView) view.findViewById(R.id.dltconsumer);
            final CustomFontTextView number = (CustomFontTextView) view.findViewById(R.id.consumer_number);

            deletelist.setOnClickListener(new View.OnClickListener() {


                @Override
                public void onClick(View v) {
                    JSONArray delete_jsonarray;
                    JSONObject jsonObject;
                    String phonenumber = number.getText().toString();
                    String jsonsetpreference_data = SessionManager.getPreferences(context,"splitfare_consumer");
                    Log.d("jsonsetpreference_data:::::::","" +jsonsetpreference_data);
                    try {
                        delete_jsonarray= new JSONArray(jsonsetpreference_data);
                        for (int i =0; i<= delete_jsonarray.length()-1 ; i++){
                            jsonObject = delete_jsonarray.getJSONObject(i);
                            String array_phonenumber = jsonObject.getString("number");
                            if (phonenumber.equals(array_phonenumber)){
                                delete_jsonarray.remove(i);
                            }
                        }
                        SessionManager.setPreferences(context,"splitfare_consumer",delete_jsonarray.toString());

                        String data = SessionManager.getPreferences(context,"splitfare_consumer");

                        Log.d(TAG,""+data);

                        ArrayList<String> details = new  ArrayList<String>();
                        try {
                            js = new JSONArray(data);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                        adapter = new AddPassengerAdapater(context,js,details);
                        listview.setAdapter(adapter);
                        adapter.notifyDataSetChanged();

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            });
        }
    });

2 个答案:

答案 0 :(得分:1)

只需阅读上面的代码:当调用onItemClick时,在某个图像视图上设置setOnClickListener。这是一次点击。这里唯一要做的就是设置监听器。

然后,在进一步点击时,将调用ImageView的onClick。

您应该考虑直接使用ListView的onItemClick,或者在ImageView的xml中添加以下属性:

android:clickable="true"
android:onClick="yourMethodNameHere"

答案 1 :(得分:0)

为什么使用listview?那是因为按钮在listview中我猜...

您可以将Recyclerview与onItemClick一起使用,请参阅本教程 https://antonioleiva.com/recyclerview-listener/

希望这能帮到你