Как отобразить пользовательское диалоговое окно из функции? - PullRequest
1 голос
/ 17 марта 2011

В моем приложении у меня есть три пункта меню, которые вызывают функции. Один из трех вызывает функцию, которая должна прочитать некоторую информацию из файла и затем отобразить ее в диалоговом окне. Моя проблема - заставить диалоговое окно работать. Я использую http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application в качестве ссылки, но методы, которые они использовали, не работают для меня.

Часть между звёздочками - это то место, где я получаю ошибку. Метод setOnClickListener (View.OnClickListener) в типе View не применим для аргументов (new DialogInterface.OnClickListener () {}). Далее он перечисляет предложенные альтернативы, которые дают ту же ошибку, но перечисляет setOnClickListener в качестве предлагаемой альтернативы. Я получаю еще одну ошибку после переопределения: «Метод onClick (View) типа new DialogInterface.OnClickListener () {} должен переопределить метод суперкласса»

Должен ли быть простой способ выполнить эту задачу? Я что-то упускаю, что должно быть очевидным?

//now stick it in a dialog box
        Context mContext = getApplicationContext();
        Dialog dialog = new Dialog(mContext);
        dialog.setContentView(R.layout.custom_dialog);
        dialog.setTitle("Totals");
        dialog.setCancelable(true);
        TextView text1 = (TextView) dialog.findViewById(R.id.diagtext1);
        TextView text2 = (TextView) dialog.findViewById(R.id.diagtext2);
        TextView text3 = (TextView) dialog.findViewById(R.id.diagtext3);
        Button btn = (Button) dialog.findViewById(R.id.button);
        text1.setText(dist);
        text2.setText(time);
        text3.setText(speed);
        //******************************************************
        btn.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                finish();
            }

        });
        //******************************************************
        dialog.show();

    }

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Вам нужно import android.view.View.OnClickListener;, чтобы избавиться от первой ошибки.

Удалите @Override перед onClick() методом. View.OnClickListener объявляет onClick() как abstract void, поэтому нет реализации для переопределения.

Вызов finish() в методе onClick() закроет ваше действие / приложение, если выполняется только одно действие. Вместо этого вы можете использовать dialog.dismiss() или dialog.cancel().

0 голосов
/ 17 марта 2011

Отметьте / комментируйте кнопку 'btn' и попробуйте добавить отрицательную кнопку.

    dialog.setNegativeButton("Quit", new OnClickListener(){
        @Override
        public void onClick(View v){
            finish();
        }

    });

Надеюсь, вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...