2012-04-23 1 views
0

Вот что я хочу сделать:Android - OnItemClickListener ListView

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) { 

ПРИМЕЧАНИЕ: Мониторинг его набора как GONE.

Спасибо!

ответ

0

Я наконец узнал ответ. По-видимому, когда вы заполняете представление множеством задач, адаптер не заполняет все при загрузке макета, поэтому каждый раз, когда вы прокручиваете вниз, hes кладет больше предметов в список.

Что вам нужно сделать, это убедиться, что вы положили поле «загружено» и, в случае, если оно ложно, оно не отображает меню ниже этого элемента, в противном случае, когда вы нажимаете один из элементов этого списка, когда вы прокрутите вниз, так как они будут иметь одинаковую относительную позицию (если вы нажмете на первый элемент, позиция = 0, когда вы прокрутите вниз, появится другая позиция = 0), меню будет отображаться на обоих элементах.

Надеюсь, что это поможет;)

0

Не глядя на код, точный ответ невозможен. Однако, когда я первый хотел реализовать «Quick Action Bar», похожий на тот, который вы показали, я последовал этому примеру здесь:

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

И это с какой-то стиль положить в: https://github.com/lorensiuswlt/NewQuickAction3D

Надеюсь, это поможет ....

+0

Спасибо. Я попробовал один из этих примеров. Моя проблема заключается не в том, чтобы точно показывать панель быстрого действия, а в том, чтобы ее поместить в нужное место. Например, если я нажму на элемент «FICHEIROS», QuickActionBar появится в «FOTOS» ... – Akash

+0

это действительно сложно, когда все идет не так, не видя какой-то соответствующий код. Поместите некоторые из них, а затем можно предложить лучшее решение. –

0

Это немного сложно, не видя никакого кода, но я могу дать вам некоторые логические идеи.

На основании вашего описания, я предполагаю, что эти быстрые барные управления скрыты на каждом пункте так списке следует, он идет:

Fotos (видимый)

Действия управления (скрытый)

[Конец товара]

Projectos (видимые)

Действие управления (скрытый)

...

Я думаю, что метод OnItemClick дает вам представление (элемент: 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); 
    } 

Вам нужно будет найти способ скрыть эти элементы управления при нажатии на другой элемент? Возможно, сохраните представление (или позицию в адаптере) в качестве переменной класса, а когда щелкнуть другой элемент, перейдите к этому представлению/найдите это представление и скройте элементы управления.