Как получить событие OnClick при расширенном представлении

Я увеличил вид из 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>

Когда я запускаю свое приложение, я вижу это представление («заголовок»), но когда я нажимаю на него, ничего не происходит. Событие просто не запущено. Что я могу сделать, чтобы получить события кликов для моего представления?


person Homo Incognito    schedule 25.05.2012    source источник


Ответы (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
        }
    }); 
person Thamilvanan    schedule 25.05.2012
comment
Я хочу нажать на представление, которое я добавил в макет. Я вижу это, но не могу нажать - person Homo Incognito; 25.05.2012
comment
Хорошо, какой вид вы хотите щелкнуть по нему. Возьмите ссылку на этот вид. - person Thamilvanan; 25.05.2012
comment
проверьте мой отредактированный код выше и возьмите ссылку, как то, что я делаю в коде для представления, для которого вы хотите щелкнуть. - person Thamilvanan; 25.05.2012
comment
в чем разница?! заголовок является абстрактным представлением, и я хочу получать для него события OnClick, но этого не происходит. - person Homo Incognito; 25.05.2012
comment
stackoverflow.com/questions/10613552/ - person Homo Incognito; 25.05.2012

Я бы посоветовал вам установить android:clickable="false" для всех представлений, содержащихся в вашем FrameLayout, и установить android:clickable="true" для самого FrameLayout.

person Jeje Doudou    schedule 25.05.2012

Использовать этот.

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

    public void onClick(View view) {
        ...some code
    }
}); 
person Raghu Nagaraju    schedule 25.05.2012
comment
как представление сможет получить событие, если у него нет родителя?! - person Homo Incognito; 25.05.2012