Google에서 사용하는 것과 같은 검색보기를 만들고 싶었습니다. 이를 위해 기본적으로 검색 막대와 화면의 위쪽 섹션에있는 버튼과 그 아래쪽에있는 ListView라는 XML 레이아웃을 만들었습니다.일반 활동 안드로이드에 정의 된 ListView의 내용을 표시합니다.
<?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>
지금,이 활동의 코드입니다 :
<?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>
는 그리고 이것은 생성자에 ArrayAdapter와 요구하는 textViewResource의 코드입니다. 지금까지 콘텐트가 포함 된 뷰를 표시하려고합니다 (그 이유는 지금 정적 정적 배열을 사용하고있는 이유입니다).
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를 건너 뛰고 당신이 말하는 것을하면, 잘 작동하기 때문입니다. –