alertDialog не работает должным образом

Я пытаюсь открыть диалоговое окно предупреждения при нажатии определенной кнопки. Сначала я использовал пример кода Android Developer с 'AlertDialog.Builder(getActivity());' вместо 'AlertDialog.Builder(ConverteerRente.this); '. Это не сработало, поэтому я изменил его в соответствии с тем, что нашел на этом сайте, но теперь моя программа вынуждена останавливаться после нажатия кнопки.

К вашему сведению, это делается во втором действии, отличном от основного. Не уверен, что это имеет значение....

У кого-то есть идея, чтобы это работало ?? Спасибо за ваши ответы

'

public void HulpConverteer(){
             // 1. Instantiate an AlertDialog.Builder with its constructor
             AlertDialog.Builder builder = new AlertDialog.Builder(ConverteerRente.this);

             // 2. Chain together various setter methods to set the dialog characteristics
             builder.setMessage(R.string.dialog_message)
                    .setTitle(R.string.dialog_title);
            // 3. Get the AlertDialog from create()
            AlertDialog dialog = builder.create();
            dialog.show();
        }

'

аварийный журнал: "03-25 19:34:24.373: E/AndroidRuntime(18828): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 03-25 19:34:24.373: E/AndroidRuntime(18828): java.lang.IllegalStateException: не удалось найти метод HulpConverteer(View) в классе активности com.example.myapplication.ConverteerRente для обработчика onClick в классе представления android.widget.Button с идентификатором 'button3' 03-25 19:34:24.373: E/AndroidRuntime(18828): в android. view.View$1.onClick(View.java:3078) 03-25 19:34:24.373: E/AndroidRuntime(18828): в android.view.View.performClick(View.java:3558) 03-25 19:34 :24.373: E/AndroidRuntime(18828): в android.view.View$PerformClick.run(View.java:14157) 03-25 19:34:24.373: E/AndroidRuntime(18828): в android.os.Handler. handleCallback(Handler.java:605) 03-25 19:34:24.373: E/AndroidRuntime(18828): в android.os.Handler.dispatchMessage(Handler.java:92) 03-25 19:34:24.373: E/ AndroidRuntime(18828): в android.os.Looper.loop(Looper.java:137) 03-25 19:34:24.373: E/AndroidRuntime(18828): в android.app.Acti vityThread.main(ActivityThread.java:4514) 03-25 19:34:24.373: E/AndroidRuntime(18828): в java.lang.reflect.Method.invokeNative(собственный метод) 03-25 19:34:24.373: E /AndroidRuntime(18828): в java.lang.reflect.Method.invoke(Method.java:511) 03-25 19:34:24.373: E/AndroidRuntime(18828): в com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:790) 03-25 19:34:24.373: E/AndroidRuntime(18828): в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 03-25 19: [ class android.view.View] 03-25 19:34:24.373: E/AndroidRuntime(18828): в java.lang.Class.getConstructorOrMethod(Class.java:460) 03-25 19:34:24.373: E/AndroidRuntime (18828): в java.lang.Class.getMethod(Class.java:915) 03-25 19:34:24.373: E/AndroidRuntime(18828): в android.view.View$1.onClick(View.j ava:3071) 03-25 19:34:24.373: E/AndroidRuntime(18828): ... еще 11"

<Button
        android:id="@+id/button3"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/button2"
        android:layout_toRightOf="@+id/textViewTypeRente"
        android:text="@string/hulp" 
        android:onClick="HulpConverteer"/>

person VanpeltJ    schedule 25.03.2014    source источник
comment
Вы хотите показать всплывающее окно с Fragment или Activity?   -  person    schedule 25.03.2014
comment
это зависит от того, откуда вы вызываете этот метод   -  person    schedule 25.03.2014
comment
Используйте builder = new AlertDialog.Builder(this);   -  person ElDuderino    schedule 25.03.2014
comment
У меня та же проблема с Use builder = new AlertDialog.Builder(this);   -  person VanpeltJ    schedule 25.03.2014
comment
Как вы вызываете метод? Покажи этот код.   -  person    schedule 25.03.2014
comment
Я редактирую свой ответ, пожалуйста, посмотрите   -  person Ersin Gülbahar    schedule 25.03.2014
comment
Как вы вызываете метод HulpConverteer? он вызывается из представления в xml с помощью onClick или вы вызываете его из java-кода?   -  person J.Ajendra    schedule 25.03.2014


Ответы (3)


Ошибка говорит:

19:34:24.373: E/AndroidRuntime(18828): java.lang.IllegalStateException: Could not find a method HulpConverteer(View) in the activity class com.example.myapplication.ConverteerRente for onClick handler on view class android.widget.Button with id 'button3'

поэтому он ожидает View! Попробуй это...

public void HulpConverteer(View view) {
new AlertDialog.Builder(this)
    .setTitle(R.string.dialog_title)
    .setMessage(R.string.dialog_message)
    .setNegativeButton("Cancel", null)
    .setPositiveButton("Ok", null)
    .create()
    .show();
}

Это то же самое, что и метод onClick(View v) OnClickListener();

person ElDuderino    schedule 25.03.2014
comment
Ты получил это! Оно работает! Вы мастер! Действительно спасибо, никогда не должен был когда-либо найти это самостоятельно. Как узнать, что означают ошибки? - person VanpeltJ; 25.03.2014
comment
Ознакомьтесь с этим docs.oracle.com/javase/tutorial/essential/exceptions , все, что вы когда-либо хотели знать об исключениях. Да ладно, и прочитайте трассировку стека, ваше сообщение об ошибке довольно подробное и точно говорит, в чем проблема... это может занять некоторое время, но вы привыкнете читать трассировку стека. - person ElDuderino; 25.03.2014

Попробуйте это, должно сработать.

public void HulpConverteer(View view) {
    new AlertDialog.Builder(getApplicationContext())
        .setTitle(R.string.dialog_title)
        .setMessage(R.string.dialog_message)
        .setNegativeButton("Cancel", null)
        .setPositiveButton("Ok", null)
        .create()
        .show();
}
person Community    schedule 25.03.2014
comment
Все еще не работает. Я уверен, что вы, ребята, в порядке, но должна быть какая-то другая проблема. Если я удалю свой метод и onClick в файле xml. Все работает нормально. Так что это должно быть что-то маленькое и глупое, что разрушает его. - person VanpeltJ; 25.03.2014
comment
@VanpeltJ Если вы посмотрите на журнал, вы увидите, что HulpConverteer(View) вызывается, но выдает NoSuchMethodException, потому что есть только метод HulpConverteer() (без параметра просмотра). - person ; 25.03.2014

Первая строка журнала предполагает, что вы вызываете метод HulpConverteer из кнопки в xml с помощью атрибута onClick. Поэтому измените public void HulpConverteer() на public void HulpConverteer (View view)

person J.Ajendra    schedule 25.03.2014