我有两个Activities
,第一个允许用户搜索文章,然后将结果返回到同一gridview
的{{1}}。单击其中一个结果文章时,应启动activity
。我知道second activity
没有发生,因为click
和toasts
也没有解雇。
显示结果的log.d
位于gridview
,结果项为launcher activity
。
我已阅读以下帖子(ListView setOnItemClickListener not working by adding button),但我无法理解每个人所指的XML template
。
项目布局:
2活动。 layout
有两个Activity A
与之关联
XML
和activity 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>