0

私が必要とするのは、メッセージを表示することですが、何もしません。「break」と「return true/false」を試してみました。なにか提案を?そして私のコードは次のとおりです。

builder.setPositiveButton("OK", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
    if(chosenCat.size() < 2){
        Toast.makeText(getApplicationContext(), "Min 2 categories to compare.", Toast.LENGTH_SHORT).show();
        //...needs to abort OK button like nothing pressed
    } else {
        //...do some stuff
}
}
});
4

3 に答える 3

0

いずれかのボタンが押された後もダイアログを開いたままにしておくには、この投稿を参照してください。

onShowListener を AlertDialog に追加すると、ボタンの onClickListener をオーバーライドできます。

final AlertDialog d = new AlertDialog.Builder(context)
        .setView(v)
        .setTitle(R.string.my_title)
        .setPositiveButton(android.R.string.ok,
                new Dialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface d, int which) {
                        //Do nothing here. We override the onclick
                    }
                })
        .setNegativeButton(android.R.string.cancel, null)
        .create();

d.setOnShowListener(new DialogInterface.OnShowListener() {

    @Override
    public void onShow(DialogInterface dialog) {

        Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
        b.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Do something

                //Dismiss once everything is OK.
                d.dismiss();
            }
        });
    }
});

参照用に上記のリンクから再現されたコード。

于 2013-05-24T09:44:27.770 に答える