我试图在按下某个按钮时 pop 一个警报对话框。我首先将Android Developer的示例代码与'AlertDialog.Builder(getActivity());'一起使用,而不是'AlertDialog.Builder(ConverteerRente.this);'。这没有用,因此我根据在此站点上找到的内容对其进行了更改,但是现在我的程序在按下按钮后被迫停止。

据您所知,这是在与主要 Activity 不同的第二个 Activity 中完成的。不确定是否重要...

有人让这个工作?
谢谢您的回答

'

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();
        }

'

crashlog:“03-25 19:34:24.373:E/AndroidRuntime(18828):致命异常:主要
03月25日19:34:24.373:E/AndroidRuntime(18828):java.lang.IllegalStateException:在 View 类android的onClick处理程序的 Activity 类com.example.myapplication.ConverteerRente中找不到方法HulpConverteer(View)。 widget.Button的ID为'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.ActivityThread.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:34:24.373:E/AndroidRuntime(18828):在dalvik.system.NativeStart.main(本机方法)
03月25日19:34:24.373:E/AndroidRuntime(18828):由以下原因引起:java.lang.NoSuchMethodException:HulpConverteer [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.java: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"/>

最佳答案

错误说:

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();
}

这与OnClickListener()的onClick(View v)方法相同;

关于android - alertDialog无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22643171/

10-11 22:39