首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式触发Onclick事件?

如何以编程方式触发Onclick事件?
EN

Stack Overflow用户
提问于 2012-06-05 17:04:16
回答 2查看 52.7K关注 0票数 25

我有一个自定义视图,有两个线性布局:第一个是视图的标题,第二个是详细信息视图。

在自定义视图中,header linearlayout的OnClickListener已经定义:当它触发时,它会折叠/展开第二个线性布局。

我想要做的是向我的header的OnClickListener事件添加更多的功能(例如:折叠/展开第二个布局并显示Toast)。

我不能修改自定义视图的源代码。我试图设置一个新的OnClickListener,但它隐藏了初始事件(折叠/展开)。

我应该如何实现它?

我的自定义视图的源代码:

代码语言:javascript
复制
public class ExpandoLayout extends ViewGroup
{
    /* some declarations */
    private Linearlayout header;
    private linearlayout footer;

    /* some code */
    @override
    protected void onFinishInflate() {
    header= new LinearLayout(context);
    header.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleExpand();
            }
        });
    }
}

我想要做的是向我的活动中已经定义的OnClickListener事件中添加一些代码。大概是这样的:

代码语言:javascript
复制
public class myActivity extends Activity {
private Linearlayout myCustomView;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.rsdetail);
    myCustomView= (MyCustomView) findViewById(R.id.expanded);

    myCustomView.getChildAt(0).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if(v instanceof LinearLayout)
            {
                v.performClick();

                Toast.makeText(getActivity(), "ExpandoOnClickListener", 2000).show();
            }
        }
    });
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10894440

复制
相关文章

相似问题

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