0

リスト ビューにデータを入力するためにベース アダプターを使用します。このリストのすべての行には 3 がありImageViewます。

それらの画像の1つを長押ししたときに画像の位置を表示して取得したいContextMenu(リストの行をクリックするのではなく、画像自体をクリックする)、listviewアクティビティの行を膨らませて画像を取得してから登録しようとしましたこの画像はcontextMenu([registerForContextMenu(imgLeft)])何も機能しません。

行内のすべての画像でイベントを呼び出すことを考えましたが、メソッド () の (ここにはアクティビティがありませんonLongClickListener) を呼び出す (show-open) 方法に問題がありcontextMenuました...? または、これらの画像を...に登録するにはどうすればよいですか?baseAdaptergetViewcontextMenubaseAdapter

こことGoogleで解決策をたくさん検索しましたが、何も得られませんでした。

4

1 に答える 1

1

ContextMenuImageView ごとに登録するとうまくいく場合があります。このような:

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
    if (arg1 == null) {
        LayoutInflater vi = (LayoutInflater) cmx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        arg1 = vi.inflate(R.layout.services_item, null);
    }
    ImageView serviceThumb = (ImageView) arg1.findViewById(R.id.thumbIView);

    registerForContextMenu(serviceThumb);

    serviceThumb.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
            menu.setHeaderTitle("Test");
            for (int i = 0; i< 5; i++) {
                menu.add(Menu.NONE, i, i, i + " - Test");
            }
    }
    });
}
于 2012-12-31T09:22:18.917 に答える