Java Android:在文本视图上打开对话框单击

Java Android:在文本视图上打开对话框单击,java,android,dialog,textview,Java,Android,Dialog,Textview,我试图在单击文本视图时打开一个对话框。我安装了一些代码,收到如下所示的错误。不幸的是,我无法独自解决这个问题,因此需要您的帮助 文本视图 <TextView android:id="@+id/Title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" androi

我试图在单击文本视图时打开一个对话框。我安装了一些代码,收到如下所示的错误。不幸的是,我无法独自解决这个问题,因此需要您的帮助

文本视图

<TextView
        android:id="@+id/Title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:fontFamily="casual"
        android:gravity="center"
        android:onClick="openOptions"
        android:padding="4dp"
        android:text="@string/optionsText"
        android:textAllCaps="true"
        android:textColor="#000"
        android:textSize="14sp" />
单击TextView时,我收到以下错误消息:

08-05 09:22:21.952 31036-31036/com.example.lukas.dicepokersheet E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  Process: com.example.lukas.dicepokersheet, PID: 31036
                                                                                  Theme: themes:{default=overlay:com.cyngn.hexo, iconPack:com.cyngn.hexo, fontPkg:com.cyngn.hexo, com.android.systemui=overlay:com.cyngn.hexo, com.android.systemui.navbar=overlay:com.cyngn.hexo}
                                                                                  java.lang.IllegalStateException: Could not find method openOptions(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatTextView with id 'Title'
                                                                                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
                                                                                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
                                                                                      at android.view.View.performClick(View.java:5204)
                                                                                      at android.view.View$PerformClick.run(View.java:21158)
                                                                                      at android.os.Handler.handleCallback(Handler.java:739)
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                      at android.os.Looper.loop(Looper.java:148)
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

使用您的功能,如下面的代码

  public void openOptions(View v) {
    DialogFragment newFragment = new OptionsDialogFragment();
    newFragment.show(getSupportFragmentManager(), "options");
}

在onClickListener中使用以下代码

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle("Are you sure?");
    alertDialogBuilder
            .setCancelable(false)
            .setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            moveTaskToBack(true);
                            Process.killProcess(Process.myPid());
                            System.exit(1);
                        }
                    })

            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    dialog.cancel();

                }
            });

    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

您需要将onclick方法签名保留为
public void method(View View)
,然后只有
Textview
onclick
可以检测并调用它。

谢谢,先生,这样做了!你能不能也给我解释一下,为什么以及它到底是如何工作的此链接将帮助您。。。。。您的日志猫告诉问题本身:
找不到方法openOptions(View)
  public void openOptions(View v) {
    DialogFragment newFragment = new OptionsDialogFragment();
    newFragment.show(getSupportFragmentManager(), "options");
}
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle("Are you sure?");
    alertDialogBuilder
            .setCancelable(false)
            .setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            moveTaskToBack(true);
                            Process.killProcess(Process.myPid());
                            System.exit(1);
                        }
                    })

            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    dialog.cancel();

                }
            });

    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();
public void openOptions(View view) {
        DialogFragment newFragment = new OptionsDialogFragment();
        newFragment.show(getSupportFragmentManager(), "options");
}