在EditText
内使用RelativeLayout
实施了一个搜索栏。出于某种原因,要搜索的查询不会被输入EditText
直接,而是在点击搜索栏时触发WebView并加载搜索页面,用户可以在其中输入搜索查询那里。
将android:onClick="selectCellSearch"
设置为RelativeLayout
,点击EditText
似乎不会触发selectCellSearch
给出的onClick
回调函数。
layout.xml
<!-- Start of Search Bar Cell -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="87dp"
android:background="#212121"
android:clickable="true"
android:onClick="selectCellSearch"
android:tag="search" >
<EditText
android:id="@+id/edit_text_search_id"
android:layout_width="fill_parent"
android:layout_height="85dp"
android:layout_marginBottom="1dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="1dp"
android:hint="@string/edit_text_search_id"
android:textSize="28sp"
android:textStyle="normal"
android:enabled="false"
android:inputType="none" />
</RelativeLayout>
<!-- End of Search Bar Cell -->
点击搜索栏后,android:tag="search"
用于生成要加载的搜索页面的网址,例如http://mywebsite.com/search
。
selectCellSearch()
现已发布在此处。
MainActivity.java
public void selectCellSearch(View view) {
final String tag = (String) view.getTag();
if (tag != null) {
buttonForWebViewSlideInAnimation.performClick();
mWebView.loadUrl(WEB_BASE_URI + tag);
}
}
答案 0 :(得分:3)
首先,不建议使用onClick的xml属性来设置onClickListener。使用setOnClickListener方法始终执行此操作。
其次,EditTest占据相对布局的所有大小,并且“超过相对”。这种情况导致RelativeLayout的onClick从未调用过。
要接收点击,您可以:
答案 1 :(得分:1)
在EditText中尝试android:duplicateParentState="true"