5

ContextMenu を使用しようとしています。SimpleCursorAdapter を使用して単純な ListActivity に対してこれを成功させました。

次に、SimpleCursorAdapter を CursorAdapter に置き換えたいが、ContextMenu の動作は保持したいので、bindView と newView の 2 つの必須オーバーライド関数を追加しました。

public View newView(Context context, Cursor cursor, ViewGroup parent) {
    View view = mLayoutInflater.inflate(R.layout.check_row, parent, false);
    registerForContextMenu(view);
    return view;
}

ListActivity の onCreate メソッドで registerForContextMenu(getListView()) を置き換える registerForContextMenu に注意してください。onCreateContextMenu(...) への呼び出しを取得するには、これが必要であることがわかりました。

onCreateContextMenu(...) に指定された ContextMenuInfo パラメータを除いて、これはすべて機能します (予想されるウィジェットで作成された行、それらのコールバックなど)。

おそらく CursorAdapter の bindView(...) メソッドで実行する別のトリックはありますか?

4

2 に答える 2

1

それは正しいアプローチではありません。行ではなく、のコンテキスト メニューを登録しますListViewregisterForContextMenu()おそらくonCreate()レイアウトを膨らませた後に、前もって呼び出します。

于 2009-11-12T02:11:42.357 に答える