2012-04-23 135 views
0

這就是我想做的事:的Android - OnItemClickListener列表視圖

List of Tasks BEFORE CLICK

我有這任務表。當我點擊我要的項目之一這顯示:

AFTER CLICKING ON A TASKS

假設菜單欄可以

findViewById(R.id.menubar); 

發現有人可以告訴我有什麼樣的代碼把onItemClickListener

lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

NOTE:將菜單欄的可見性設置爲GONE。

謝謝!

回答

0

我終於找出答案。顯然,當你用很多任務填充視圖時,適配器在加載佈局時不會填充所有內容,因此每次向下滾動時,他都會在listview中添加更多項目。

你要做的是確保你把一個字段「加載」,如果是假的,它不會顯示在該項目下的菜單欄,否則,當你點擊該列表中的一個項目時,當你向下滾動時,因爲它們將具有相同的相對位置(如果你點擊第一項,位置= 0,當你向下滾動時,將會有另一個位置= 0),菜單欄將出現在兩個項目上。

希望它有幫助;)

0

沒有看代碼,一個確切的答案是不可能的。然而,當我第一次想要實現「快速操作欄」類似於一個你所顯示的,我曾在這裏跟着這個例子:

http://code.google.com/p/simple-quickactions/

而這與一些造型放在:https://github.com/lorensiuswlt/NewQuickAction3D

希望這可以幫助....

+0

謝謝。我曾嘗試過其中一個例子。我的問題並不完全顯示quickaction欄,它放在正確的地方。例如,如果我按下「FICHEIROS」項目,QuickActionBar將出現在「FOTOS」中...... – Akash 2012-04-23 16:28:29

+0

如果事情出錯而沒有看到相關的代碼,那真的很難。發佈一些,然後可以提供更好的解決方案。 – 2012-04-23 16:41:51

0

沒有看到任何代碼是有點困難,但我可以給你一些邏輯思路。

根據您的描述,我假定這些快捷欄控件都被隱藏在每個ListView項的話,它會:

照片(可視)

操作控件(隱藏)

[項目完]

PROJECTOS(可見)

動作控件(隱藏)

...

我認爲OnItemClick方法爲您提供了作爲第二個參數點擊的視圖(item:Fotos,Projectos等)。如果您將其轉換回用於創建列表視圖項目的任何佈局,您應該可以使用findViewByID訪問每個列表視圖上的隱藏控件並使其可見。

lv.setOnItemClickListener(new OnItemClickListener() {   
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    { 
     //Assuming each item is a linear layout 
     LinearLayout itemAsLL = (LinearLayout)view; 

     //find the action bar controls 
     LinearLayout actionControlsLayout = itemAsLL.findViewById(R.name.of.actioncontrols.id); 

     //Make it visible 
     actionControlsLayout.setVisibility(VIEW.Visible); 
    } 

你需要找到一種方法來隱藏這些控件,當另一個項目被點擊?也許將視圖(或在adapterView中的位置)保存爲一個類變量,當另一個項目被單擊時,轉到該視圖/查找該視圖並隱藏控件。