2

ボタンを長押しすると、フローティング コンテキスト メニューを作成しようとしています。私はすべての答えを読みましたが、それでも、私はこれに夢中になっています。ここに私のコードがあります:

R.menu.menu.xml

<?xml version="1.0" encoding="utf-8"?>
    <menu
      xmlns:android="http://schemas.android.com/apk/res/android">

        <item android:id="@+id/MnuOpc1" android:title="Opcion1"
               android:icon="@drawable/ic_launcher"></item>
        <item android:id="@+id/MnuOpc2" android:title="Opcion2"
              android:icon="@drawable/ic_launcher"></item>
        <item android:id="@+id/MnuOpc3" android:title="Opcion3"
              android:icon="@drawable/ic_launcher"></item>

    </menu>

OnCreateContextMenu(...)

    @Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
}

onContextItemSelected(...)

@Override
public boolean onContextItemSelected(MenuItem item) {
    Log.v("Hello...","I got the switch");  

    switch (item.getItemId()) {
    case R.id.MnuOpc1:
        Log.v("Hello...","Option 1");   
        return true;
    case R.id.MnuOpc2:
        Log.v("Hello...","Option 2"); 
        return true;
    default:
        return super.onContextItemSelected(item);
    }

上記のコードはすべて正しいと思いますが、registerForContextMenu を呼び出すときに何か不足しています。

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
    linear = (LinearLayout) findViewById(R.layout.main);
    registerForContextMenu(linear);

試してみましregisterForContextMenu(getListView());たが、動作しません。Eclipse からエラーが発生しています。私は何を間違っていますか?

4

1 に答える 1

2

ボタンのコンテキスト メニューを作成しようとしていると言いましたが、onCreate() でコンテキスト メニューを LinearLayout に登録します。実際に発生しているエラーを知らずに、それがそれであるかどうかはわかりません。

于 2012-06-19T23:52:35.090 に答える