我有一个我想点击的操作栏项目:
android:onClick="showDialog"
所以我可以调用我的show dialog函数,当我从activity_main.xml上的一个按钮调用但不能从我的menu_main.xml调用它时。当我在menu_main.xml中输入此代码时,我收到了这个小的信息警告, - 方法" showDialog"在" MainActivity"签名不正确。
一旦应用程序打开,它会立即崩溃并发生致命异常:
dialog.com.dialogtry1 E / AndroidRuntime:FATAL EXCEPTION:main android.view.InflateException:无法在类dialog.com.dialogtry1.MainActivity中解析菜单项onClick handler showDialog
这是我在MainActivity中的showDialog代码:
public void showDialog(View v){
FragmentManager Fmanager = getFragmentManager();
Dialog myDialog = new Dialog();
myDialog.show(Fmanager, "MyDialog");
}
这是我的Dialog类:
public class Dialog extends DialogFragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.dialogfragment, null);
}
}
这是我的dialogfragment.xml:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create new list."
android:id="@+id/headerID"
android:textSize="20sp"
android:padding="5dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="List name here."
android:layout_below="@+id/headerID"
android:id="@+id/editTextID"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yes"
android:layout_below="@+id/editTextID"
android:id="@+id/yesID"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:id="@+id/noID"
android:layout_below="@+id/editTextID"
android:layout_toRightOf="@+id/yesID"/>
答案 0 :(得分:0)
而不是使用
android:onClick="showDialog"
按照onOptionsItemSelected
的说明尝试使用here。 onOptionsItemSelected
是处理菜单项中点击事件的正确方法。
答案 1 :(得分:0)
我发现了这个问题..当我从我的showDialog函数中删除(View v)作为争论时,我能够使用OnOptionsItemSelected而没有&#34;方法无法解析&#34;错误。你发布的链接肯定会对我的未来有所帮助,这就是很多好东西。谢谢!