0

一つ質問があります。edittext を最初は無効にしたい。チェックボックスをオンにした場合にのみ有効になります。何が起こっているのかというと、アプリを起動すると、チェックボックスにはチェックがありませんが、編集テキストを編集できます。edittext を無効にするには、テキスト ボックスをオンにしてからもう一度オフにする必要があります。手伝って頂けますか?

ここに私のコードがあります:

check1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) {
    if (isChecked) {
        txtbox1.setEnabled(true);
    } else {
        txtbox1.setEnabled(false);
    }
}
});

2 つの異なる編集テキストに 2 つのチェックボックスを使用する場合。2 番目のチェックボックスを押すと、アプリがクラッシュします。コードは次のとおりです。

public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.order);  
txtbox1= (EditText) findViewById(R.id.editText1);  
button1 = (Button) findViewById(R.id.button1);  
tv = (TextView) findViewById(R.id.editText5);  
txtbox2= (EditText) findViewById(R.id.editText2);
check1 = (CheckBox)findViewById(R.id.checkcheck);
check2 = (CheckBox)findViewById(R.id.checkcheckcheck);
button1.setOnClickListener(new clicker());



check1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) {
    if (isChecked) {
        txtbox1.setEnabled(true);
        txtbox1.setFocusable(true);
    } else {
        txtbox1.setEnabled(false);
        txtbox1.setFocusable(false);
    }
}

});

check2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) {
    if (isChecked) {
        txtbox2.setEnabled(true);
        txtbox2.setFocusable(true);
    } else {
        txtbox2.setEnabled(false);
        txtbox2.setFocusable(false);
    }
}

});

}

ログキャット: ログキャット

4

3 に答える 3

1

txtbox1.setEnabled(false);で呼び出しonCreate()ますか?
onCheckChanged は最初から呼び出されません。

于 2013-08-28T08:24:44.183 に答える
1

xml ファイル android:enabled = "false"で edittext を使用して、最初は無効にします。

またはプログラム txtbox1.setEnabled(false);であなたのonCreate().

次に使用します:

check1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) {
    if (isChecked) {
        txtbox1.setEnabled(true);
    } else {
        txtbox1.setEnabled(false);
    }
}
于 2013-08-28T08:50:28.590 に答える