如何在膨胀的视图上获取OnClick事件

时间:2012-05-25 07:59:47

标签: android events inflate android-inflate

我从xml中提取了视图并将其添加到布局:

View header = LayoutInflater.from(this).inflate(R.layout.lenta_parent_item,(FrameLayout)findViewById(R.id.frameContent), false);
header.setOnClickListener(new OnClickListener() {

        public void onClick(View header) {
            ...some code
        }
    }); 

主要布局xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:id="@+id/frameContent">
<view ....

</FrameLayout>

当我运行我的应用程序时,我可以看到此视图(“标题”),但是当我点击它时没有任何反应。事件刚刚解雇。如何为我的观点获取点击事件?

3 个答案:

答案 0 :(得分:3)

我没有清楚地得到你的概念,你想要点击发布你的完整xml代码。

View header ;
LayoutInflater inflater= LayoutInflater.from(this);
header=inflater.inflate(R.layout.lenta_parent_item,null, false);

我想你试图点击customExapandablelistview,然后尝试这样。

PinnedHeaderExpListView listviewpinned=(PinnedHeaderExpListView )header.findViewbyId(R.id.list);
    listviewpinned.setOnItemClickListener(new OnClickListener() {

        public void onClick(View header) {
            ...some code
        }
    }); 

答案 1 :(得分:0)

我建议您为FrameLayout中包含的所有视图设置android:clickable="false",并为FrameLayout本身设置android:clickable="true"

答案 2 :(得分:0)

使用此功能。

View header = getLayoutInflater().inflate(R.layout.lenta_parent_item, null);
 header.setOnClickListener(new OnClickListener() {

    public void onClick(View view) {
        ...some code
    }
});