问一个ContextMenu实现的问题

scarofsky 发布于 2011/08/08 14:04
阅读 1K+
收藏 1
想以某个TextView为载体,注册上下文菜单。书上的方法是在java里写:
@Override
public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("上下文菜单的载体");
       registerForContextMenu(tv);      //注册上下文菜单
      setContentView(tv);
}
@Override
public void onCreateContextMenu(……
(略)
问:我是将整个布局放在main.xml里,然后调用:
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
}

用这种方法怎样实现注册上下文菜单???(P.S.不注册上下文菜单,即使写了onCreateContextMenu也没用)

各路好汉,帮帮我呗~

加载中
0
无鸯
无鸯
一样要通过 TextView tv = (TextView)findViewById(R.id.xxxxxx); 来获取 TextView 实例,然后设置上下文菜单
scarofsky
scarofsky
您好!这样还是有错,仿真时会被强行关闭……具体见我“引用您的回答”,http://www.oschina.net/question/171358_25397 好人帮到底吧~
0
scarofsky
scarofsky

引用来自“无鸯”的答案

一样要通过 TextView tv = (TextView)findViewById(R.id.xxxxxx); 来获取 TextView 实例,然后设置上下文菜单
O(∩_∩)O谢谢!
不过这样仿真时还有一个问题,会使程序强行关闭!贴上代码:
package com.studio.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;
public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    final int C_MENU_NEW=ContextMenu.FIRST;
    final int C_MENU_OPEN=ContextMenu.FIRST+1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tvv = (TextView) findViewById(R.id.TV);
        registerForContextMenu(tvv);
        setContentView(R.layout.test);
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu2,View v,ContextMenuInfo info){
    super.onCreateContextMenu(menu2, v, info);
    menu2.add(0, C_MENU_NEW, 0, "xinjian");
    menu2.add(0, C_MENU_OPEN, 0, "dakai");
    }
} 
test.xml是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <TextView
    android:id="@+id/TV"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout> 
这样仿真后会提示“很抱歉…………意外停止……强行关闭”。
设置断点,然后debug的结果看不懂……所以再次求教……谢谢!!!
返回顶部
顶部