안녕하세요. 검색 활동을 시작한 활동으로 결과를 되돌리려면 어떻게해야하는지 궁금합니다.검색 활동에 결과가 표시 되나요?
현재 검색 대화 상자가 구현되어 있습니다 (전화의 검색 버튼을 클릭하면 검색 활동이 시작됨).
다음은 목록보기 인 검색 활동을위한 코드입니다.
공용 클래스 ItemFinder는 ListActivity {
public static final int REQUEST_CODE = 1; // get it?
Vector<String> upcCodes;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
upcCodes = new Vector<String>();
ListView lv = (ListView) findViewById(android.R.id.list);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
String upc = upcCodes.elementAt(position);
setResult(RESULT_OK);
}
});
// Get the intent, verify the action and get the query
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
ProgressDialog dialog = ProgressDialog.show(ItemFinder.this, "Searching",
"Searching. Please wait...", true);
performSearch(query);
dialog.hide();
dialog.dismiss();
}
}
public void performSearch(String query){
String result = new SmartShopClient().SearchItems(query);
List<String> dataList = new ArrayList<String>();
String _parsedResult[] = result.split("\\n");
for(int i = 0; i<_parsedResult.length; i++){
String _splitData[] = _parsedResult[i].split("\\|");
String itemName = _splitData[0];
String itemUPC = _splitData[1];
dataList.add(itemName);
upcCodes.add(itemUPC);
}
ArrayAdapter<String> arr = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList);
this.setListAdapter(arr);
}
}
그래서 검색이 모든 벌금과 멋쟁이 노력을 확장,하지만 난 그게 내가 그것을 위해, ListView에의 결과 중 하나를 클릭하면 원하는 일부 데이터와 함께 주 활동으로 데이터를 반환하려면 클릭 한 검색 결과의 이름을 말합니다.
감사합니다.
을 구부려? – Overload119
이 접근법을 구현 한 후에는 입력이 상자에 입력되기 전에도 onSearchRequested가 호출된다는 문제가 있습니다. 따라서 검색이 작동하고 결과가 내 검색 쿼리에 의해 반환됩니다. 항상 기본값은 "Null"입니다. – Overload119