2012-07-14 46 views
1

我是Android開發人員的新手,我的問題是關於爲listview項目提供選項的最佳方式是什麼? 在Bada OS上,您可以將任何列表視圖項目水平滑走,並訪問該項目的選項。 http://horrorcoding.altervista.org/developing-on-bada-2-0-%E2%80%93-how-to-use-listcontextitems-in-a-listviewgroupedlistview/Android:爲listview項目提供選項的最佳方式

但這並不在Android上存在。那麼該怎麼做呢? 我的主要活動有一個列表視圖,如果你點擊一個項目,它會打開一個新的活動,包含點擊項目的細節。

但在主要的活動,你應該能夠刪除或編輯任何項目。 所以我的想法:

idea1: 我把該項目的右上角一個小編輯圖標,並且當該用戶點擊,我與編輯顯示QuickAction /刪除選項。 http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/ 如果用戶點擊該項目的其他部分,只需打開詳細信息活動。

idea2: 我使用contextmenu長按這個項目。但是這個選項對於用戶來說是「不可見的」,所以他們怎麼知道他們可以對這些項目進行長時間的按壓?

您認爲如何?

回答

4

通常的方法是創建列表(由一個列表項長時間點擊激活)的上下文菜單。

而「長按上下文菜單」是Android標準。任何用戶都知道它,不需要提供指示器(IMO)。由於您正在製作Android應用,因此我堅持使用Android約定。 :)

這聽起來像你知道如何來實現它,但如果你不...

首先,您註冊列表中的上下文菜單:

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

然後你提供代碼OT創建上下文菜單(你可以從一個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); 
} 
+0

謝謝你的回答,我會做上下文菜單。 雖然,我個人更喜歡Bada的方式:) – Zotyi 2012-07-14 16:20:58

0

的長按該項目是爲了實現你的選擇是最常見的方式,讓用戶瞭解有關這種事情。我認爲這是遵循的方式。 但是你也可以實現你的按鈕,或者一個幻燈片動作,它顯示與你的長按(例如官方的twitter應用程序)相同的選項。

+0

感謝答案,我會做的上下文菜單即可。 雖然,我個人更喜歡Bada的方式:) – Zotyi 2012-07-14 16:19:44

相關問題