1

こんにちは私は小さなアンドロイド アプリケーションを開発しています。私のアプリケーションでは、1 つのコンテキスト メニューを表示しています。すべてが正常に機能していますが、唯一の問題は、ヘッダー ビューをコンテキスト メニューに設定できないことです。私のコードは次のようになります

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {

    super.onCreateContextMenu(menu, v, menuInfo);
    LayoutInflater headerInflater = (LayoutInflater) getSherlockActivity()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    ViewGroup header = (ViewGroup) headerInflater.inflate(
            R.layout.context_menu_header, null);

    menu.setHeaderView(header);
    menu.setHeaderTitle("Edit Profile Pic");

    MenuInflater inflater = getActivity().getMenuInflater();
    inflater.inflate(R.menu.menu_camera, menu);
}

そして私のレイアウトファイル

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

 <ImageView
        android:id="@+id/context_menu_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/actionbar" 
        />
</LinearLayout>

そのレイアウトファイルをヘッダービューとして使用していません...これも読んでいますContextMenuのカスタムヘッダーの適用

しかし、それは私にとってはうまくいきません..助けが必要です....

4

2 に答える 2

4

ヘッダー ビューを設定した後にヘッダー タイトルを設定すると、そのビューは適用されません。xml ビュー自体にヘッダー タイトルを設定し、ヘッダー ビューを適用するときにタイトルを設定します。次のように..

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);
LayoutInflater headerInflater = (LayoutInflater) getSherlockActivity()
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

ViewGroup header = (ViewGroup) headerInflater.inflate(
        R.layout.context_menu_header, null);

   // menu.setHeaderView(header);
  TextView title = (TextView) header
                .findViewById(R.id.header_textView);
        title.setText("Edit Profile Pic");
    menu.setHeaderView(header);
//menu.setHeaderTitle("Edit Profile Pic");

MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu_camera, menu);
}

そしてそれはうまくいくでしょう。この質問Applying a custom header for ContextMenuと同じです。

ありがとうございました...

于 2013-01-31T06:32:22.200 に答える