首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OnClickListener onLongClickListener逻辑

OnClickListener onLongClickListener逻辑
EN

Stack Overflow用户
提问于 2016-01-30 20:16:08
回答 1查看 372关注 0票数 0

最近,我开始从零开始计划,我正在学习的教程,我不知道它是如何运作,我找不到任何答案。这就是我苦苦挣扎的代码,但我真的不明白为什么会有beetwen ()方括号一个新的Button.OnClick侦听器,然后OnLongClickListener在这些方法中来自哪里呢?当然,我对对象编程的了解可能比它所要求的要小一些,但我不喜欢学习其他方式,而不是使用它。

代码语言:javascript
运行
复制
Button przycisk = (Button) findViewById(R.id.mojprzycisk);

    przycisk.setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) { WHERE THIS  V IS FROM ?
                    TextView mojtekst = (TextView) findViewById(R.id.mojtekst);
                    mojtekst.setText("Good job Boss");

                }
            }


    );
    przycisk.setOnLongClickListener(
            new Button.OnLongClickListener() {

                public boolean onLongClick(View v){   <-----WHERE IS IT FROM?
                    TextView mojtekst = (TextView)   findViewById(R.id.mojtekst);
                    mojtekst.setText("HOLY CARP THAT WAS A LONG ONE");
                return true;}}



    );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-30 20:27:44

您应该查看接口中的java。同样的一个很好的教程也提供给这里。一旦您理解了接口的概念,您就可以看到OnClickListenerOnLongClickListener是接口,它们有像onClick(视图v)onLongClick(视图v)这样的方法,这些方法是在单击或长时间单击特定视图时调用的。他们返回被点击和持有的视图。

当你说

代码语言:javascript
运行
复制
przycisk.setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) { WHERE THIS  V IS FROM ?
                    TextView mojtekst = (TextView) findViewById(R.id.mojtekst);
                    mojtekst.setText("Good job Boss");

                }
            }


    );

您正在创建接口的新实例。为便于阅读,还可以按以下方式编写上述代码。

代码语言:javascript
运行
复制
Button.OnClickListener onClickListener = new Button.OnClickListener() {

    @Override
    public void onClick(View v) {
        TextView mojtekst = (TextView) findViewById(R.id.mojtekst);
        mojtekst.setText("Good job Boss");
    }
};
przycisk.setOnClickListener(onClickListener);

因此,基本上您正在创建接口的一个实例,因为它是一个接口,所以您需要重写方法onClick()并给出它的定义。

简而言之,对于设置onClickListeneronLongClickListener的任何视图,该视图将在onClick(View v)onLongClick(View v)方法中返回。这个视图将是v

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35106620

复制
相关文章

相似问题

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