首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓OnLongClickListener问题

安卓OnLongClickListener问题
EN

Stack Overflow用户
提问于 2010-12-23 19:30:13
回答 3查看 2.3K关注 0票数 0

我有一个自定义视图DisView(上下文,位图),我想向其中添加一个LongCLickListener。

单击其他内容后,将显示该视图。

代码语言:javascript
运行
复制
public void onClick(View view) {
    ...
    RelativeLayout toplayout = new RelativeLayout(this);
    setContentView(toplayout);

    Bitmap bmp2 = BitmapFactory.decodeResource(getResources(), R.drawable.tag3);

    tag3 = new DisView(this,bmp2);
    tag3.setOnLongClickListener(this);

我要补充的是,活动的内容视图最初设置为线性布局,但在单击按钮时,setContentLayout()会对新布局进行相对布局。

接下来,我做了onLongClick方法(该活动的一个方法,实现onlongclicklistener):

代码语言:javascript
运行
复制
@Override
public boolean onLongClick(View view) {

    moveTag(view);
    return true;
}

moveTag()是一个非常简单的TranslateAnimation。我不知道为什么它不能工作。我有一种感觉,可能是因为我改变了布局。

EN

回答 3

Stack Overflow用户

发布于 2010-12-23 19:38:53

你有没有想过用ViewSwitcher来改变你的显示布局?

乔纳森

票数 0
EN

Stack Overflow用户

发布于 2010-12-23 19:47:34

如果toplayout是一个LinearLayout,并且你写了RelativeLayout toplayout = new RelativeLayout(这个);软件通常会在启动时崩溃(或者当这个视图被激活时),如果你现在遇到的是软件一旦启动就崩溃了(或者当你启动这个活动时),这个问题很可能是由这个语句引起的。

票数 0
EN

Stack Overflow用户

发布于 2012-04-11 09:33:05

在您的示例中,您执行了以下操作:

代码语言:javascript
运行
复制
tag3.setOnLongClickListener(this);

你为什么干那样的事呢?

setOnLongClickListener接受OnLongClickLIstener.类型的参数类似于:

代码语言:javascript
运行
复制
tag3.setOnLongClickListener((OnLongClickListener) keyHdlr);

其中keyHdlr看起来像这样:

代码语言:javascript
运行
复制
OnLongClickListener keyHdlr = new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    Log.d("long", "backspace phone land long clicked!!!!!!");
                    return false;
                }
            };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4518343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档