안드로이드 개발 질문/답변
(글 수 45,052)
"알짜만 골라 배우는 안드로이드 프로그래밍 " 이라는 책을 보면서 공부하고 있습니다.
책에 LoremDemo라는 예제를 보고 List를 Search할 수 있는 소스를 거의 똑같게 구성했는데(메니페스트도 물론 설정해줬습니다.)
예제소스는 안드로이드 화면에서 Search바와 키패드가 잘 뜹니다만
제가 구성한 소스에서는 onSearchRequested()메서드는 뜨는데 Search바와 키패드가 뜨질 않네요..
@Override
public boolean onSearchRequested() {
Toast.makeText(getApplicationContext(), "Search Requested", Toast.LENGTH_SHORT).show();
return super.onSearchRequested();
}
onSearchRequested는 호출이 되는지 확인해보느라 위와 같이 구성했습니다.
에러가 뜨면서 프로그램이 닫히는 것도 아니고 메서드는 호출되는데 검색창이 뜨질 않으니 난감하네요 ㅠㅠ
<activity android:name=".ContactView" android:label="@string/AddList"> <meta-data android:name="android.app.default_searchable" android:value=".ContactListSearch" /> </activity> <activity android:name=".ContactListSearch" android:label="List Search" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name = "android.app.searchable" android:resource="@xml/searchable" /> </activity>
Search와 관련된 메니페스트 부분은 위와 같이 만들었습니다.. 도무지 무엇이 문제인지를 모르겠습니다ㅠ
Search bar가 뜨질 않으니 당연히 위의 ContactListSearch라는 Activity도 시잘되질 않습니다..
혹시 저랑 같은 문제 겪으신 분 안계신가요?
자답입니다 ㅠㅠ
메니페스트 메타 데이터에서
@xml/searchable에 문제가 있었네요 ㅠㅠ
<searchable
xmlns:android="http://schemas.android.com/apk/res/android"
android:label = "@string/SearchLable"
android:hint = "@string/SearchHint" />
처럼 @string 위치를 지정해줘야 하는데
귀찮아서 android:lable = "Search" 와 같은 식으로 해줬더니 Search바가 안뜬 것이었네요 ㅠㅠ
xml은 어렵네요 ㅠㅠ 어느 부분에서는 그냥 문자열을 바로 입력해줘도 잘 뜨는데(예를 들어 Activity의 Lable)
저경우는 @string으로 위치지정을 꼭해줘야 나오는 경우도 있고.. 암튼 어이 없이 안일하게 넘어간 것 때문에 몇시간을 날렸군여