0

这是我想要做的:

点击前的任务列表

我有这个任务清单。当我单击其中一个项目时,我希望它出现:

点击任务后

假设可以找到菜单栏

findViewById(R.id.menubar);

有人可以告诉我必须在ItemClickListener上放什么代码吗

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

注意:菜单栏可见性设置为 GONE。

谢谢!

4

3 回答 3

0

不看代码,不可能得到准确的答案。然而,当我第一次想实现一个类似于你展示的“快速操作栏”时,我在这里遵循了这个例子:

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

这与一些样式放入:https ://github.com/lorensiuswlt/NewQuickAction3D

希望这可以帮助....

于 2012-04-23T16:18:26.260 回答
0

没有看到任何代码有点困难,但我可以给你一些逻辑思路。

根据您的描述,我假设这些快速栏控件隐藏在每个列表视图项上,所以它是:

照片(可见)

动作控制(隐藏)

[项目结束]

项目(可见)

动作控制(隐藏)

...

我认为 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);
     }

当单击另一个项目时,您需要找到一种方法来隐藏这些控件?也许将视图(或在 adapterView 中的位置)保存为类变量,当单击另一个项目时,转到该视图/找到该视图并隐藏控件。

于 2012-04-23T17:12:01.423 回答
0

我终于找到了答案。显然,当您用大量任务填充视图时,加载布局时适配器不会填充所有内容,因此每次向下滚动时,他都会在列表视图上放置更多项目。

您需要做的是确保放置一个“已加载”字段,如果为 false,它不会在该项目下方显示菜单栏,否则,当您单击该列表的其中一个项目时,当您向下滚动时,因为它们将具有相同的相对位置(如果您单击第一项,位置 = 0,当您向下滚动时,将有另一个位置 = 0)菜单栏将出现在两个项目上。

希望能帮助到你 ;)

于 2012-04-26T10:16:35.313 回答