onItemCickListener没有响应单击网格视图项

时间:2016-07-29 19:21:20

标签: android gridview onclicklistener

我有两个Activities,第一个允许用户搜索文章,然后将结果返回到同一gridview的{​​{1}}。单击其中一个结果文章时,应启动activity。我知道second activity没有发生,因为clicktoasts也没有解雇。

显示结果的log.d位于gridview,结果项为launcher activity

我已阅读以下帖子(ListView setOnItemClickListener not working by adding button),但我无法理解每个人所指的XML template

项目布局:

  • 2活动。 layout有两个Activity A与之关联 XMLactivity XML的{​​{1}}。第二个是 在那里,我一直在关注我的大部分尝试。

    gridview应通过Activity A启动Activity B

    Intent还有两个Activity B与之关联..但我不能XML 到目前为止,它们并不相关。

    的尝试:

  • 将属性click添加到项目模板中的根布局。

    我将其解释为包含android:descendantFocusability="blocksDescendants"(我的gridview)的布局...当我执行此操作时,我的launcher activity搜索不会进入焦点,这似乎是合乎逻辑的,因为我告诉布局阻止对所有后代的关注。

  • 设置textView。此外,不是解决方案。

  • 我在设置gridview paramter: android:focussable="true"之后设置了ClickListener 。所以这不应该干扰adapter。 (澄清

  • 尝试设置listener(或您想要处理buttons内的任何其他views),如下所示:

  

机器人:可聚焦= “假”

     

机器人:focusableInTouchMode = “假”

同样,为什么要设置list item来处理点击工作?

问题:什么被视为“项目模板中的根布局”或其他人提到它:“主(第一级)布局”?我对此有何解释,对吗?

在gridview上设置blocksDecendants会......总是设置我要返回的项目被阻止,不是吗?

启动器活动布局:

focus false

内容搜索活动布局:启动器活动

  <include layout="@layout/content_search" />

项目文章结果布局:此模板在网格视图中填充,点击后应启动新活动

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".activities.SearchActivity"
    tools:showIn="@layout/activity_search">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/etQuery"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/btnSearch"
        android:layout_toStartOf="@+id/btnSearch"
        android:hint="@string/hints" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/search"
        android:id="@+id/btnSearch"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="onArticleSearch"/>

    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/gvResults"
        android:layout_below="@+id/btnSearch"
        android:layout_centerHorizontal="true"
        android:numColumns="3"/>
</RelativeLayout>

在项目上点击监听器

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageButton
        android:layout_width="175dp"
        android:layout_height="175dp"
        android:id="@+id/ivImage"
        android:scaleType="center"
        android:elevation="5dp"
        android:src="@mipmap/ic_text"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="There will be a lot of content here..."
        android:maxLines="2"
        android:ellipsize="end"
        android:elevation="5dp"
        android:id="@+id/tvTitle"/>
</LinearLayout>

0 个答案:

没有答案