アクションなしでチェックボックスをアンチェックしてからチェックボックスをチェックする方法を尋ねたい* (つまり、トリガーなしでonCheckChangedListener()
) *?オンチェックアクションがありますが、チェックを外すためにこのアクションを無効にしたいです。出来ますか ?
これが私のコードです:
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があります。onCheckedChangeListenerで、チェックが外れるタイミングを確認してから、これをfalseに設定します。これがあなたのためのトリックをすることを願っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加