Закрытие Android / Java при клике? - PullRequest
       15

Закрытие Android / Java при клике?

1 голос
/ 20 февраля 2011

Вот в основном мой код:

private Dialog mDialog;
private BluetoothAdapter mBluetoothAdapter;

... 

private void onCreate(Bundle savedInstanceState) {
    ...
    enabltBTButton = getMyButton();
    enableBtButton.setOnClickListener(this.enableBT);
    ...
}

...

public View.OnClickListener enableBT = (new View.OnClickListener() {
    public void onClick(View view) {
        mDialog.hide();
        mBluetoothAdapter.enable();
        Toast.makeText(Main.this, "Bluetooth enabled", Toast.LENGTH_LONG).show();
        return;
    }
});

Проблема: когда я нажимаю кнопку, ничего не происходит!Я уверен, что enableBTButton ссылается на правильный объект, но я предполагаю, что это как-то связано с моими ссылками mDialog и mBluetoothAdapter,, которые оба объявлены вне внутренней функции onClick.

Что является альтернативным решением для этого?

Ответы [ 3 ]

1 голос
/ 20 февраля 2011

В вставленном коде у вас есть:

private void onCreate()

но должно быть:

protected void onCreate (Bundle savedInstanceState)

Если это действительно "private onCreate ()" в вашем коде, то он не будет вызываться платформой, потому что он не переопределяет Activity.onCreate (Bundle), что означает, что onClickListener не настроен Ваша кнопка тоже.

0 голосов
/ 20 февраля 2011

Вместо того, чтобы продолжать возиться с тем, что у меня было, я решил использовать AlertDialog, который, кажется, хорошо справляется с работой. Спасибо всем за ваши решения.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Bluetooth is not enabled...")
                .setCancelable(false)
                .setPositiveButton("Enable it!", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Toast.makeText(getApplicationContext(), "Bluetooth enabled", Toast.LENGTH_LONG).show();
                                    ...
                    }
                })
                .setNegativeButton("Leave it!", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Toast.makeText(getApplicationContext(), "Bluetooth still disabled", Toast.LENGTH_LONG).show();
                    }
                });
            AlertDialog mAlert = builder.create();
            mAlert.show();
0 голосов
/ 20 февраля 2011

Я думаю, проблема в том, что вы вызываете функцию setOnClickEventListener, но вы должны вызывать setOnClickListener. setOnClickEventListener функция, которую вы написали?

(Кстати, вы можете проверить свои предположения о ссылках на mDialog и / или mBluetoothAdapter, закомментировав эти строки. Я не думаю, что это проблема.)

...