无法在选项菜单中打开活动

时间:2013-09-08 09:17:59

标签: android eclipse android-optionsmenu

我有一个选项菜单,可以通过图标成功打开,但是,当我点击它时,它什么也没做,而且LogCat和错误日志都没有。这是我的主要活动和电子邮件活动。我有email.xml中的所有按钮和gameoptions.xml中的一个项目。请帮忙。这让我疯狂了一个星期!

private ListView lv1; 

       @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.gameoptions, menu);
       menu.findItem(R.id.btn_market);
       return true;}

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
   switch (item.getItemId()) {
    case R.id.btn_market:
     startActivity(new Intent(getApplicationContext(),EmailActivity.class));
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
   }

电子邮件活动

public class EmailActivity extends Activity {
 Button send;
 EditText address, subject, emailtext;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.email);

Button b=(Button)this.findViewById(R.id.btn_market);
    b.setOnClickListener(new OnClickListener(){
     public void onClick(View arg0){ 
     Uri address=Uri.parse("https://play.google.com/store/apps/details?id=ru.kenzhekul.tashiev&hl=ru");
     Intent surf=new Intent(Intent.ACTION_VIEW, address);
     startActivity(surf);
     }
    }); 


send = (Button) findViewById(R.id.emailsendbutton);
address = (EditText) findViewById(R.id.emailaddress);
//subject = (EditText) findViewById(R.id.emailsubject);
emailtext = (EditText) findViewById(R.id.emailtext);

send.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

    emailIntent.setType("plain/text");

    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { address.getText().toString() });


    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,emailtext.getText().toString());

    EmailActivity.this.startActivity(Intent.createChooser(emailIntent,
        "Отправка письма"));
  }
});

} }

3 个答案:

答案 0 :(得分:2)

startActivity(new Intent(getApplicationContext(),EmailActivity.class));行是错误的。

您无法在编写时使用应用程序上下文启动活动。您应该传递活动实例而不是应用程序上下文。

编辑:如果您属于某项活动,请尝试传递this

答案 1 :(得分:1)

你应该通过this而不是getApplicationContext()

答案 2 :(得分:0)

在你的方法 onOptionsItemSelected 中尝试删除switch语句并简单地将Log放在那里我想问题是按钮ID。