我正在编写一个Android代码...我已在右上角创建了一个菜单项(" +")。我已经在我的代码中看到了这个项目的OnClick,但MyApp没有运行,并且说不幸停止了。在此之前我使用了
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add:
// Toast.makeText(this, "Adding button selected", Toast.LENGTH_SHORT).show();
return true;
default:
return true;
}
}
当用户点击该项目并且它有效时。但是我需要知道我应该以这种方式做什么?!因为在那之后我想制作布局(Dialog),这样当我按下那个对话框显示的项目时,我想我应该用这个方法来做那个
myActivity:
package com.example.myapp;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.*;
import android.widget.TextView;
import android.widget.Toast;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
//@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onCreateMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
return true;
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
public void AddOnClick (View view) {
Toast.makeText(this, "Button 1 pressed",
Toast.LENGTH_LONG).show();
}
}
menu.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add"
android:icon="@drawable/plus"
android:title="Adding"
android:orderInCategory="50"
android:showAsAction="always"
android:onClick="AddOnClick"
/>
</menu>
我哪里错了?!我的方式是正确显示对话框还是我应该做其他事情?! Tnx提前
答案 0 :(得分:1)
执行以下操作并删除android:onClick in menu
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.addXml, menu);
答案 1 :(得分:0)
签名错误。它应该是
public void AddOnClick (MenuItem item)
因为它是在MenuItem中声明的
答案 2 :(得分:-1)
public boolean onCreateMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
return true;
}
改变如下:
public boolean onCreateMenu(Menu menu) {
MenuInflater inflater = getMenuInflater().inflate(R.menu.addXml, menu);
return true;
}