Меню не работает на эмуляторе - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь использовать инфлятор меню, чтобы дать пользователю возможность написать мне на поддержку, но каждый раз, когда я нажимаю кнопку меню на эмуляторе, он ничего не делает.Вот мой кодСпасибо !!!

мне нужно отредактировать это в моем манифесте?В моем 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 голосов
/ 22 сентября 2011

Вот несколько проблем с вашим кодом:

  1. Пожалуйста, используйте onCreateOptionsMenu(), используйте return(super.onCreateOptionsMenu(...)) с теми же параметрами, которые вы получаете - другими словами, цепочка к суперклассу, когда вы закончите

  2. Ваши атрибуты android:onClick будут работать только на API уровня 11 и выше, и ваши методы, к которым вы привязали их, должны быть public и иметь параметр MenuItem (который у вас нет)

  3. Ваш тип MIME в emailme() должен быть text/plain, а не plain/text

...