我是Android开发新手,遇到麻烦,真需要帮助.. 请在发布建议链接前阅读.. 我正在开发一个演示应用程序,显示已安装的应用程序,包括系虽然我完成了大部分工作,但我无法使 ActionBar搜索选项工作..基本上我想搜索/过滤安装的应用列表,如图像在此示例中显示 - >链接:http://www.androidhub4you.com/2014/04/android-action-bar-search-inside.html
我通过stackoverflow看了很多例子,例如使用searchview,在操作栏中使用edititext,使用过滤器,在developer.android网站上创建一个不同的可搜索的xml和活动文件来实现搜索,但只是在我的活动代码中混淆实现它。 哪个是真正的问题 - 在我的代码中实现示例代码逻辑代码
我在下面显示的主Activity_main.xml文件中使用了Listview
activity_main.xml中----
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:animateLayoutChanges="true">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#848484"
android:dividerHeight="1dp"
android:animateLayoutChanges="true"
android:listSelector="@drawable/listview_selector"
android:textFilterEnabled="true"
/>
我需要更改此 - &gt;&gt;&gt; android:id =“@ android:id / list” - to - android:id =“@ + id / list” 在活动文件中使用?
menu.xml文件
<item android:id="@+id/menu_Action_Search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="collapseActionView|always"
android:actionViewClass="android.widget.SearchView"
/>
<item
android:id="@+id/menu_Sort_By_Size"
android:orderInCategory="100"
android:icon="@drawable/ic_action_sort_by_size"
android:showAsAction="always|withText"
android:title="@string/action_about"/>
两个活动文件 第一 **已安装应用的主要活动 - ** 我使用List列出应用程序 使用ApplicationAdaptor作为适配器 和包管理器
private PackageManager packageManager = null;
private List<ApplicationInfo> applist = null;
private ApplicationAdapter listadaptor = null;
这是OnCreate()...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
packageManager = getPackageManager();
new LoadApplications().execute();
}
实现了扩展AsyncTask的onListItemClick和LoadApplication
第二个活动文件
哪个是适配器活动。它的代码部分。
public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> {
private List<ApplicationInfo> appsList = null;
private Context context;
private PackageManager packageManager;
//private int isChecked;
public ApplicationAdapter(Context context, int textViewResourceId,
List<ApplicationInfo> appsList) {
super(context, textViewResourceId, appsList);
this.context = context;
this.appsList = appsList;
packageManager = context.getPackageManager();
}
developer.android网站上的可搜索方法
Searchable.xml
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint"
>
SearchableActivity
public class SearchableActivity extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.xml.searchable);
handleIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
handleIntent(intent);
}
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
//use the query to search your data somehow
doMySearch(query);
}
}
private void doMySearch(String queryString){
/*ListView appList = (ListView)findViewById(android.R.id.list);
appList.setAdapter(null);
//ArrayAdapter<ApplicationInfo> listadaptor = new ArrayAdapter(getApplicationContext(),R.layout.snippet_list_row, appList);
ApplicationAdapter listadaptor = new ApplicationAdapter(getApplicationContext(), R.layout.snippet_list_row, appsList)*/
}
}
AndroidManifest.xm
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.listapps"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name="com.example.listapps.AllApps"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SearchableActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.VIEW" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
</application>
我需要一些帮助才能搜索/过滤列表的ListView ..请帮助因为我现在几天都陷入了困惑。
由于这是我在 Stackoverflow 社区中的第一个问题,我试图尽可能详细地解释我的问题,所以请放轻松我。 任何积分或说明都会非常有用。
由于