package com.huawei.android;import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;public class ContextMenuDemo extends Activity {
    /** Called when the activity is first created. */    TextView myTxt;
    public static final int ITEM1=Menu.FIRST;
    public static final int ITEM2=Menu.FIRST+1;
    public static final int ITEM3=Menu.FIRST+2;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myTxt=(TextView)findViewById(R.id.myTxt);
        this.registerForContextMenu(myTxt);
    }
    public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){
     menu.add(0, ITEM1, 0, "红色背景");
     menu.add(0,ITEM2,0,"绿色背景");
     menu.add(0,ITEM3,0,"白色背景");
    }
@Override
public boolean onContextItemSelected(MenuItem item) {
    switch(item.getItemId()){
case ITEM1:
myTxt.setBackgroundColor(Color.RED);
break;
case ITEM2:
myTxt.setBackgroundColor(Color.GREEN);
break;
case ITEM3:
myTxt.setBackgroundColor(Color.WHITE);
break;

}
    return true;
}
    
}
请问我这代码出了什么问题呀,我按了Menu键杂就没反应了,请那位朋友帮我看一下

解决方案 »

  1.   

    不是onCreateContextMenu这个方法,应该是onCreateOptionsMenu代码如下:
             public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, ITEM1, 1, "红色背景");
    menu.add(0, ITEM2, 2, "绿色背景");
    menu.add(0, ITEM3, 3, "白色背景");
    return super.onCreateOptionsMenu(menu);
    }
    只需要改动这一点就可以了
      

  2.   


    他问上下文菜单,是onCreateContextMenu没错,不过他又说按menu键没反应,menu键就是onCreateOptionsMenu了,他自己都不知道要写哪个。
      

  3.   

    this.registerForContextMenu(myTxt);你对这个TextView绑定了上下文菜单,长按它就会出现了
      

  4.   

    onCreateContextMenu()是长按方法,方法用错了。