我的app结构是这样的: 主要活动 - 检查它是第一次运行和打开注册活动,否则打开默认活动。
默认活动 - 有一个导航抽屉和4个片段。
我有一个片段中的搜索视图,不是在工具栏中,而是在布局中。 甚至不显示触摸键盘! 我做错了什么?
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="@color/list_background"
android:orientation="vertical">
<!--<include layout="@layout/toolbar"/>-->
<LinearLayout
android:id="@+id/searchContent1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="20dp">
<android.support.v7.widget.SearchView
android:layout_width="260dp"
android:layout_height="wrap_content"
android:id="@+id/ingredientSearch"
android:iconifiedByDefault="false"
android:inputType="text"
/>
<ImageButton
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/plateButton"
android:layout_gravity="right"
android:src="@drawable/ic_plate"
android:contentDescription="@string/container" />
</LinearLayout>
<LinearLayout
android:id="@+id/searchContent2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"></LinearLayout>
</LinearLayout>
Searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="Hint">
</searchable>
清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.smart_mat.dev.main" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.smart_mat.dev.main.MainActivity"
android:label="@string/title_activity_main"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.smart_mat.dev.main.AlwaysActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.default_searchable"
android:value=".SearchActivity"/>
</activity>
<activity android:name="com.smart_mat.dev.main.SearchActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.smart_mat.dev.userprofiledata.UserGoal">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name="com.smart_mat.dev.login.Login">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name="com.smart_mat.dev.login.SignUp">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:0)
在片段搜索视图中应该像这样调用
SearchView searchView =(SearchView)getActivity()。findViewById(R.id.searchView1);
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Log.d("query", query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.d("genres 1", newText);
fillAdapter(newText);
return false;
}
});