java - 如何在没有操作的情况下取消选中复选框然后进行检查?

标签 java android checkbox

我想问一下如何在不执行操作的情况下取消选中复选框,然后选中复选框*(即不触发 onCheckChangedListener())*? 我有 oncheck 操作,但我想禁用此操作以取消选中。是否可以 ?

这是我的代码:

 chb_czy_zamowic.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(
                        final CompoundButton buttonView, boolean isChecked) {
                    // TODO Auto-generated method stub
                    final Dialog d1 = new Dialog(context);
                    d1.setContentView(R.layout.ilosc);
                    d1.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
                    d1.setTitle("Wybierz ilość");

                    final EditText et_Ilosc;
                    Button b_Ok;
                    Button b_Odejmij;
                    Button b_Dodaj;

                    if (buttonView.isChecked()) {

                        et_Ilosc = (EditText) d1
                                .findViewById(R.id.et_Ilosc);

                        et_Ilosc.setText(String.valueOf(i));



                        b_Dodaj = (Button) d1.findViewById(R.id.b_Dodaj);
                        b_Dodaj.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                String zmienna_pom = et_Ilosc.getText()
                                        .toString();
                                i = Integer.valueOf(zmienna_pom);
                                setI(i);
                                int k = getI();
                                k++;

                                setI(k);
                                et_Ilosc.setText(String.valueOf(i));

                            }
                        });
                        b_Odejmij = (Button) d1
                                .findViewById(R.id.b_Odejmij);
                        b_Odejmij.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                String zmienna_pom = et_Ilosc.getText()
                                        .toString();
                                i = Integer.valueOf(zmienna_pom);
                                setI(i);
                                i--;
                                setI(i);
                                et_Ilosc.setText(String.valueOf(i));

                            }
                        });
                        b_Ok = (Button) d1.findViewById(R.id.b_Ok);
                        b_Ok.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                String zmiennna_pom = et_Ilosc.getText()
                                        .toString();
                                int k = Integer.valueOf(zmiennna_pom);

                                if (k<=0 || k>=100) {

                                                                Toast t = Toast.makeText(getContext(),
                                            "Niepoprawna wartość" ,
                                            Toast.LENGTH_SHORT);
                                    t.show();
                                    view.chb_czy_zamowic.setChecked(false);
                                    d1.cancel();
                                }
                                else if( et_Ilosc.getText().toString().equals(""))
                                {
                                    Toast t = Toast.makeText(getContext(),
                                            "Uzupełnij pole ilość" ,
                                            Toast.LENGTH_SHORT);
                                    t.show();
                                    view.chb_czy_zamowic.setChecked(false);
                                    d1.cancel();
                                }
                                else
                                    view.chb_czy_zamowic.setEnabled(false);
                                    view.chb_czy_zamowic.setChecked(false); 


                                    items.get(position).Tow_ilosc -= k;
                                    Towar checkedObject = new Towar();
                                    checkedObject.Tow_ilosc = k;
                                    checkedObject.Kat_id = items
                                            .get(position).Kat_id;
                                    checkedObject.kategoria = items
                                            .get(position).kategoria;
                                    checkedObject.Tow_cena = items
                                            .get(position).Tow_cena;
                                    checkedObject.Tow_id = items
                                            .get(position).Tow_id;
                                    checkedObject.Tow_nazwa = items
                                            .get(position).Tow_nazwa;
                                    MainActivity.lista_wybranych_towarow
                                            .add(checkedObject);
                                    k = 0;
                                    setI(0);
                                    // et_Ilosc.setText("");
                                    if (MainActivity.lista_wybranych_towarow
                                            .size() > 0) {
                                        b_zatwierdz
                                                .setVisibility(View.VISIBLE);

                                        TowarZamowienie.towary_zamowione = new ArrayList<Towar>(MainActivity.lista_wybranych_towarow);

                                        Collections
                                                .copy(TowarZamowienie.towary_zamowione,
                                                        MainActivity.lista_wybranych_towarow);

                                    } else {
                                        Toast t = Toast.makeText(
                                                getContext(),
                                                "Proszę wybrać ilość",
                                                Toast.LENGTH_LONG);
                                        t.show();
                                    }



                                d1.dismiss();

                            }
                        });

                    }
                    ;
                    d1.show();

                }

            });

最佳答案

有一个属性 setClickable 与我认为可以使用的 View 相关联。在 onCheckedChangeListener 中,查看它何时取消选中,然后将其设置为 false。希望这对您有用。

关于java - 如何在没有操作的情况下取消选中复选框然后进行检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754107/

相关文章:

java - 在 REST API 中使用 POST 方法而不是 GET

java - 使用 Java 使用数据库每天重置自动编号

Android 构建错误 :Could not resolve all dependencies for configuration ':app:androidJacocoAgent'

java - 在ImageView中设置位图图像

WPF:在同一列中带有复选框和文本框的 ListView

java - 从 ImageVeiw 获取可绘制对象时出现空指针异常

安卓倒车动画

javascript - 选中的复选框数

python-2.7 - 滚动文本 "spill over"顶部边框内的复选按钮

java - 为什么我的链表中的数据不显示? java