菜单inflater未在模拟器上运行

时间:2011-09-21 17:53:29

标签: android android-layout menu android-emulator android-manifest

我正在尝试使用菜单充气器为用户提供电子邮件以寻求支持的选项,但每次我点击模拟器上的菜单按钮它都不会做任何事情。这是我的代码。感谢!!!

我需要在清单中编辑吗?我的xml有菜单作为井项的标题和项目

这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/email" android:title="@string/email_menu"
        android:icon="@drawable/ic_envelope" android:onClick="emailme" />
    <item android:id="@+id/test1" android:title="@string/test1"
        android:icon="@drawable/ic_dashboard" android:onClick="test1" />

</menu>

import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class MenuButton extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.menu.menu);


}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.email:
        emailme();
        return true;
    case R.id.test1:
        test1();
        return false;
    default:
        return super.onOptionsItemSelected(item);
    }
}
private void test1() {
    // TODO Auto-generated method stub

}
private void emailme() {
    // TODO Auto-generated method stub
    String domsEmail = "MYEMAIL@EXAMPLE.com";
    String message = "Hello, I just want to let you know that your app";
    String myemail[] = { domsEmail };
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, myemail);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "your app");
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
    startActivity(emailIntent);
}

}

1 个答案:

答案 0 :(得分:0)

以下是您的代码的各种问题:

  1. onCreateOptionsMenu()使用return(super.onCreateOptionsMenu(...))使用与您收到的相同的参数 - 换句话说,当您完成时链接到超类

  2. 您的android:onClick属性仅适用于API等级11及更高版本,并且您绑定到它们的方法必须为public并且具有MenuItem参数(你不这样做)

  3. emailme()中的MIME类型必须为text/plain,而不是plain/text