【问题标题】:Long Press Button Event Handler长按按钮事件处理程序
【发布时间】:2012-11-14 16:28:55
【问题描述】:

我看过几篇文章,例如one,描述了如何使用按钮处理长按事件。我可以按照这些指示进行操作,但我想知道是否可以按照我处理点击的方式进行操作。我处理点击的方式是在 XML 中这样定义处理程序:

<Button
    android:id="@+id/btn_NextLift"
    ...
    android:onClick="btn_NextLiftClick" />

然后在代码中:

public void btn_NextLiftClick(View vw_Current) 
    {...}

我确实在 xml 中看到了 boolean 属性 longClickable,但我看不到在哪里定义事件处理程序,所以...???

TIA JB

【问题讨论】:

    标签: android


    【解决方案1】:

    您不能通过 XML 执行此操作。相反,使用:

    Button button = (Button) findViewById(R.id.btn_NextLift);
    
    button.setOnLongClickListener(new OnLongClickListener() { 
            @Override
            public boolean onLongClick(View v) {
                // TODO Auto-generated method stub
                return true;
            }
        });
    

    确保此代码在调用 setContentView() 之后出现。

    另外,请确保 longClickable 属性设置为 true。

    【讨论】:

    • 这令人沮丧。我确实在 setContentView 之后设置了代码,但我的按钮仍然显示为 null,所以我得到 NullRef 异常。
    • 如果我将 LongClick 处理程序添加到 XML 定义的单击处理程序,那么它可以工作。好像我的按钮被隐藏了,直到它引发事件才被发现???
    • 我被拉到另一个项目,现在我记得了。按钮位于相对布局上,这是列表视图为每个项目使用的布局。
    • 我在这里开始了一个新问题:stackoverflow.com/questions/13385435/…
    猜你喜欢
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2019-03-15
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多