-2

非常に簡単な CheckBox サンプル コードを作成しました。コード @ svn checkout http://my-android-ui-examples.googlecode.com/svn/trunk/ my-android-ui-examples-read-only をチェックアウトできます

プロジェクト名は次のとおりです。

アクションを実行するには、初めて 2 回クリックする必要があります。次回以降は、目的の作業を行うのは 1 回のクリックだけです。

この原因として考えられることを教えてください。

Sudipta Debに関して。

4

1 に答える 1

2

onCheckedChangeListener変更を適切にリッスンするには、 を使用する必要がありCheckBoxます。

あなたのアクティビティを書き直して、これらを実装しonClick、ボタンの を適切に設定しました。XML ファイルの onClick 宣言を削除します。

public class MainActivity extends Activity implements OnCheckedChangeListener
{

    private CheckBox chkAndroid, chkIphone, chkWindows;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        chkAndroid = (CheckBox) findViewById(R.id.checkBox_android);
        chkAndroid.setOnCheckedChangeListener(this);
        chkIphone = (CheckBox) findViewById(R.id.checkBox_ios);
        chkIphone.setOnCheckedChangeListener(this);
        chkWindows = (CheckBox) findViewById(R.id.checkBox_windows);
        chkWindows.setOnCheckedChangeListener(this);
        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub
                StringBuffer string = new StringBuffer();
                string.append("Iphone checked: ").append(chkIphone.isChecked());
                string.append("\nAndroid checked: ").append(chkAndroid.isChecked());
                string.append("\nWindows checked: ").append(chkWindows.isChecked());
                Toast.makeText(getApplicationContext(), string.toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if (buttonView == chkAndroid) {
            // do whatever.. you aren't doing anything currently
        } else if (buttonView == chkIphone && isChecked) {
            displaySuggestion();
        } else if (buttonView == chkWindows && isChecked) {
            displaySuggestion();
        }

    }

    private void displaySuggestion()
    {
        Toast.makeText(getApplicationContext(), "Try android", Toast.LENGTH_SHORT).show();
    }
}
于 2012-12-04T19:58:52.830 に答える