всплывающее диалоговое окно в качестве ввода - PullRequest
0 голосов
/ 15 марта 2011

Эй, у меня проблема с реализацией всплывающего диалогового окна, подобного этому, в этом примере: http://malsandroid.blogspot.com/2010/04/list-picker-and-fading-popup-notice.html

Это работает нормально, если я реализую код для поля ввода.Проблема в том, что я хочу использовать меню опций в приложении, которое позволяет пользователю контролировать, хочет ли он использовать стандартную клавиатуру в Android или это всплывающее диалоговое окно в качестве входных данных для полей редактирования.

Если я поставлю этоКод напрямую в класс main.java работает нормально, как я только что сказал (так же, как пример кода выше):

hcp_entry_player_1 = (EditText)findViewById( R.id.hcp_entry_player_1 );

final CharSequence[] items = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a hcp");
builder.setItems(items, new DialogInterface.OnClickListener()
{
    public void onClick(DialogInterface dialogInterface, int item) 
    {
        hcp_entry_player_1.setText(items[item]);
        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();

        return;
    }
});

builder.create().show();

Чтобы сделать короче говоря, когда я использую меню параметров, мне нужно использовать onClickListenerмежду различными пустыми методами.Поэтому я не могу позвонить AlertDialog.Builder builder = new AlertDialog.Builder(this);.Я пытался позвонить AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());, но это не работает.Честно говоря, я не понимаю проблемы?

Я напишу больше кода на тот случай, если кому-то интереснокак описано выше.Очень нужен совет, спасибо заранее!

1 Ответ

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

Вместо getApplicationContext() попробуйте сохранить само действие в качестве статической переменной и использовать его для контекста.

В вашем классе:

private static Activity activity;

Где-то в onCreate():

activity = this;

Затем выполните:

AlertDialog.Builder builder = new AlertDialog.Builder(activity);
...