2011-01-14 2 views
2

AutoCompleteTextView를 사용하여 ListActivity를 만들려고합니다. ListView에는 ImageView와 2 개의 TextViews로 구성된 listItems가 있습니다. 자동 완성 문자열을 제외한 모든 것이 잘 작동합니다. ArrayAdapter를 사용하고 있지만 문자열 (COUNTRIES)을 설정하는 방법을 모르겠습니다. 다음은 일부 코드입니다.AutoCompleteTextView가 사용자 지정 목록과 관련된 문제입니다.

공용 클래스 SearchActivity는 {

static final String[] COUNTRIES = new String[] { 
     "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", 
     "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", 
     "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", 
     "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", 
     "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", 
     "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", 
     "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", 
     "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", 
     "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", 
     "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", 
     "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic" 
    }; 

private AutoCompleteTextView searchView; 
private ListView    mListView; 
private ArrayList<MyItem>  itemList   = new ArrayList<MyItem>(); 
private ListItemAdapter   searchListAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search); 

    searchView = (AutoCompleteTextView) findViewById(R.id.search_text); 
    searchView.setAdapter(searchListAdapter); 

    searchListAdapter = new ListItemAdapter(this, R.layout.search_row, itemList); 
    setListAdapter(searchListAdapter); 

    mListView = getListView(); 
    mListView.setTextFilterEnabled(false); 
} 

/** 
* This class is used to for the list objects. 
*/ 
private class ListItemAdapter extends ArrayAdapter<MyItem> { 

    private ArrayList<MyItem> bevs; 
    private MyItem   bevItem; 

    private TextView    nameView; 
    private TextView    descView; 
    private ImageView    imageView; 

    public ListItemAdapter(Context context, int textViewResourceId, 
      ArrayList<MyItem> itemList) { 
     super(context, textViewResourceId, itemList); 
     this.bevs = itemList; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = convertView; 


    /* Update the views */ 

     return view; 
    } 
} 

}

/건배 아드리안

답변

1

난 당신이 누락 된 중요한 것은가 생각하는 올바른 방향으로 날 가리하십시오 ListActivity를 확장 실제로 국가 배열에 대한 어댑터를 만듭니다.

ArrayAdapter<String> autocompleteCountriesAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, COUNTRIES); 

그런 다음 그것을 사용하는 자동 완성 텍스트보기 위해 코드를 변경 :

searchView = (AutoCompleteTextView) findViewById(R.id.search_text); 
searchView.setAdapter(autocompleteCountriesAdapter); 

체크 아웃이 예제를 : Auto Complete Text View | Android Beginner Dev Tutorial

+0

그러나 ArrayAdapter 으로 변경하면 어떻게 "ArrayList itemList;"를 추가 할 수 있습니까? 목록에? – Adrian

+0

아마도 나는 이해하지 못했을 것입니다 - 실제로 어댑터에는 두 가지 목록이 있습니다. 하나는 목록 용이고 다른 하나는 자동 완성보기 용입니다 - 그럴 권리가 있습니까? –

+0

나쁘다! 그것은 목록과 textView에 "searchListAdapter"를 추가하는 것 같습니다. 그래서 당신이 말했듯이 실제로 하나의 어댑터가 필요합니다 TextView 및 하나의 어댑터 목록입니다. 이제는 작동하지만 "제안 된"문자열은 시각적 구성 요소에 맞지 않습니다. 절반으로 줄일 수 있습니다. 하지만 아마도 새로운 질문을해야 할 것입니다. 감사! – Adrian

0

난 그냥 내가 최근 Trying to filter a ListView with runQueryOnBackgroundThread but nothing happens - what am I missing? 묻는 질문을 기억했다. 필자의 경우 검색 문자열이 텍스트 상자에 입력되었을 때 목록의 내용을 새로 고칠 때 문제가 발생했습니다. 표면적으로 그것은 당신과 같은 문제는 아니지만 아마도 당신은 똑같은 것을 성취하려고 시도하고있을 것입니다. 사람들이 내 WorldInfo 앱으로 국가를 선택할 수 있도록 검색 활동을 만들려고했습니다. 아이디어는 주요 활동에서 검색 버튼을 누르고 텍스트 상자에 타이핑하여 필터링 할 수있는 국가 목록을 봅니다. 그런 다음 원하는 국가를 선택할 수 있습니다.

그런 시설이 안드로이드에 내장되어있는 것으로 밝혀졌습니다! 내 질문에 대한 답변을 Shawn Lauzon으로 확인하십시오.

시스템 검색 기능에 제대로 통합 되려면 다소 시간이 걸리지 만 경험이 훨씬 좋습니다.

+0

nneed help http://stackoverflow.com/questions/29045738/customadapter- 생성자 - 정의되지 않음 –

관련 문제