Вызов действия из пользовательского диалога

1

Я думаю, это простой вопрос (Im такой noob...) У меня есть это настраиваемое диалоговое окно с тремя кнопками.

Теперь я хочу вызвать действие с одной из кнопок, чтобы Я пробовал это:

public class picturedialog extends Dialog implements OnClickListener {
    Button Camera;

    public picturedialog (Context context){
        super (context);
        setContentView(R.layout.picturedialog);

        Camera = (Button) this.findViewById(R.id.pdButton1);

        Camera.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                dismiss();

                Intent myIntent = new Intent(view.getContext(), CameraActivity.class);
                startActivity(myIntent);

            }
        });
...
}

Затем появляется красная строка squiggly на startActivity (myIntent). При наведении на него затмение говорит мне следующее: "Метод startActivity (Intent) - это undefined для типа new View.OnClickListener() {}" Эххх? Пожалуйста, сориентируйте меня на том, как это сделать правильно. Любая помощь будет оценена.

Теги:
android-activity

2 ответа

1
Лучший ответ

Я уверен, что вы чересчур с подклассом от Dialog. Попробуйте выполнить диалог диалога - https://developer.android.com/guide/topics/ui/dialogs.html#ShowingADialog

Обратите внимание, что диалоги создаются "на лету" (в Activity.onCreateDialog()) без необходимости иметь свои собственные классы диалога. Поскольку вы устанавливаете прослушиватель внутри операции переноса (если вы следуете учебнику), вы можете вызвать startActivity(myIntent), потому что все экземпляры класса/методов экземпляра класса экземпляра доступны для экземпляра внутреннего класса.

  • 0
    Благодарю. Я попробую это. : D Учебное пособие, которым я следовал, было довольно простым и включало создание отдельного класса из моего основного класса. :( Сначала я подумал, что причина, по которой мой код не работает, была в том, что я вызывал действие из класса, не относящегося к деятельности. PS: Я редко читаю документацию по Android, потому что она не так дружелюбна для новых программистов. Но я буду попробуйте на этот раз, я должен заставить вещи работать !!! Нех, нет, не!
2

Предположим, что имя вашей операции равно A, а затем вы просто выполните:

   A.this.startActivity(myIntent);

Проблема возникает из-за того, что "this" внутри вашего внутреннего класса относится к объекту этого внутреннего класса, когда то, что вы хотите, является объектом включенной Activity. A. это будет ссылаться на это.

Если вы не включаете этот класс в Activity, попробуйте вызвать метод startActivity из метода, используя контекст, который вы передали в метод, например. context.startActivty(myIntent). Метод startActivity относится к классу Context.

  • 0
    В самом деле? Спасибо! Я попробую это прямо сейчас. : D Спасибо большое ... :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню