我想創建一個Google使用的搜索視圖。爲此,我創建了以下XML佈局,它基本上是屏幕上部的搜索欄和按鈕,以及底部的ListView。從定期活動中定義的ListView中顯示內容Android
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayoutSearch"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#FF394952">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
<EditText android:layout_height="wrap_content" android:id="@+id/searchTextBar" android:layout_width="wrap_content" android:layout_weight="1">
<requestFocus></requestFocus>
</EditText>
<Button android:layout_height="fill_parent" android:layout_width="wrap_content" android:id="@+id/searchButton" android:text="Buscar"></Button>
</LinearLayout>
<ListView
android:id="@+id/searchResultList"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_weight="1.0" />
</LinearLayout>
這是textViewResource的代碼,它構造一個ArrayAdapter要求:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</TextView>
現在,這是該活動的代碼。到目前爲止,我只想顯示內容的視圖(這就是爲什麼我現在使用靜態字符串數組)。
public class SearchActivity extends Activity{
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.searchview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, COUNTRIES);
ListView lv = (ListView)this.findViewById(R.id.searchResultList);
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
}
但是,當我運行該活動時,我看到搜索欄,但它不顯示ListView。
我試着改變SearchActivity的擴展到ListActivity,但程序只是崩潰時,我試圖啓動它。我也意識到Search Interface的存在,但我只是想看到這個特定的方法工作。
爲什麼它不顯示ListView的內容?有沒有辦法來解決這個問題?
在此先感謝
Michaelg:謝謝你的回答!我很清楚ListActivity已經有一個ListView實例。但是,我怎麼能將適配器重定向到我創建的ListView?因爲如果我只是跳過setContentView並按照你所說的做,它就可以正常工作。 –