1

私は Android 開発に不慣れで、リストビュー項目にオプションを提供する最良の方法は何ですか? Bada OS では、リストビュー項目を水平方向にスライドさせて、その項目のオプションにアクセスできます。 http://horrorcoding.altervista.org/developing-on-bada-2-0-%E2%80%93-how-to-use-listcontextitems-in-a-listviewgroupedlistview/

しかし、これは Android には存在しません。では、どうやってそれを行うのですか?私の主なアクティビティにはリストビューがあります。アイテムをクリックすると、クリックされたアイテムの詳細を含む新しいアクティビティが開きます。

ただし、メイン アクティビティでは、任意のアイテムを削除または編集できる必要があります。だから私の考え:

idea1 : アイテムの右上隅に小さな編集アイコンを配置し、ユーザーがこれをクリックすると、編集/削除オプションを含む QuickAction を表示します。 http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/ ユーザーがアイテムの他の部分をクリックした場合は、詳細アクティビティを開くだけです。

idea2 : アイテムを長押しするには contextmenu を使用します。しかし、このオプションはユーザーには「見えない」ので、アイテムを長押しできることをどうやって知ることができるでしょうか?

どう思いますか?

4

2 に答える 2

4

通常の方法は、リストのコンテキスト メニューを作成することです (リスト項目を長押しするとアクティブになります)。

そして「コンテキストメニューの長押し」はAndroidの標準です。ユーザーはそれを認識しており、インジケーターを提供する必要はありません (IMO)。あなたは Android アプリを作成しているので、Android の規則に固執します。:)

あなたはそれを実装する方法を知っているように聞こえますが、そうでない場合は...

まず、リストをコンテキスト メニューに登録します。

...
setListAdapter(lists);
registerForContextMenu(getListView());

次に、コンテキスト メニューを作成するコードを提供します (XML リソースから作成することもできますが、その便利な例はありません)。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Item Operations");
    menu.add(0, v.getId(), 0, "Edit Item");
    menu.add(0, v.getId(), 0, "Delete Item");
}

次に、メニューのオプションを処理するコードを提供します。

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
            .getMenuInfo();
    if (item.getTitle() == "Edit Item") {
        mRowId = info.id;
        DialogFragment_Item idFragment = new DialogFragment_Item();
        idFragment.show(getFragmentManager(), "dialog");
    } else if (item.getTitle() == "Delete Item") {
        mDbHelper.deleteItem(info.id);
        return true;
    }
    return super.onContextItemSelected(item);
}
于 2012-07-14T15:35:29.300 に答える
0

項目を長押しすることは、オプションを実装する最も一般的な方法であるため、ユーザーはこの種のことを認識しています。これが従うべき道だと思います。ただし、ボタン、または長押しと同じオプションを表示するスライド アクション (公式の Twitter アプリなど) を実装することもできます。

于 2012-07-14T15:20:45.567 に答える