0

我有一个问题,因为我无法在 GridView 中捕获 OnItemClick 事件(该项目具有 TextView 和 WebView)。我在 GridView 中正确加载数据,但 onItemClick 不起作用这是我的代码:

list_item_layout_redes.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/estilocasilla" >

<com.mhp.desarrollo.laycosandroid.CuadroImagenRed ======THIS IS A CLASS THAT EXTENDS   WEBVIEW
    android:id="@+id/imagen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:scrollbars="none" />

<TextView
    android:id="@+id/texto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="#55000000"
    android:paddingBottom="15dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="15dp"
    android:textColor="@android:color/white"
    android:textStyle="bold" 
     android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"/>

activity_redes.xml

 <FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    .....

            <GridView
                android:id="@+id/gvRedes1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/grisMedio"
                android:cacheColorHint="#00000000"
                android:numColumns="2"
                android:textAlignment="textStart" >
            </GridView>
        ...
</FrameLayout>

并且这部分代码在 Activity 中并且有 onItemClick 部分

if (gvRedes1 != null) {
            gvRedes1.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> a, View v, int position,
                        long id) 

有人可以帮我吗?我没有找到解决方案。

此致 {

4

1 回答 1

0

在您Activity创建以下内容Listener

public interface GridListener{

    public void onItemClicked(int position);

}

private GridListener gridListener = new XMPPConnectionListener() {
    @Override
    public void onItemClicked(int position) {

    }
};

然后在你的Activity你把它添加Listener到你的适配器中,如下所示:

gvRedes1.setOnGridListener(gridListener);

您将需要setOnGridListener在适配器中创建将上面创建的此侦听器作为输入的方法,并将输入设置为您GridListener在适配器类中拥有的实例类。就像是:

private GridListener gridListener;
public void setOnGridListener(GridListener listener){
    gridListener = listener;
} 

onClick现在,在您的适配器中,当您像我建议的那样使用in单击某个项目时getView(),您可以使用此侦听器对您的Activity

gridListener.onItemClicked(position);
于 2013-10-04T08:18:45.840 回答