2012-03-07 2 views
0

BaseAdapter에서 상속받은 클래스에서 채우는 스피너 컨트롤이 있습니다. 이 어댑터 클래스를 사용하여 회 전자를 채울 수 있지만 2 열을 표시하고 하나만 좋아할 것입니다.Android - 어댑터에서 Spinner의 값 1을 표시합니다.

John Brown      [email protected] 
Sue Fields      [email protected] 
Mark Twain      [email protected] 

와 나는 단지 쇼를하고 싶습니다 : 예를 들면, 현재 표시

public class POCInfoAdapter extends BaseAdapter { 

    //Private objects. 
    private List<POCInfo> mListPOCInfo; 
    private LayoutInflater mInflater; 

    //constructor. 
    public POCInfoAdapter(Context c, List<POCInfo> list){ 
     mListPOCInfo = list; 

     //create layout inflater. 
     mInflater = LayoutInflater.from(c); 
    } 

    @Override 
    public int getCount(){ 
     return mListPOCInfo.size(); 
    } 

    @Override 
    public Object getItem(int position){ 
     return mListPOCInfo.get(position); 
    } 

    @Override 
    public long getItemId(int position){ 
     return position; 
    } 

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

     //If view is null. 
     if(view == null){ 
      //Inflate new layout. 
      view = mInflater.inflate(R.layout.poc_list, null); 

      //create holder. 
      ViewHolder holder = new ViewHolder(); 

      //Find Controls. 
      holder.txtFullName = (TextView)view.findViewById(R.id.txtFullName); 
      holder.txtEmailAddress = (TextView)view.findViewById(R.id.txtEmailAddress); 

      //Set data structure to view. 
      view.setTag(holder); 
     } 

     //Get selected POC Info. 
     POCInfo pocInfo = mListPOCInfo.get(position); 

     if(pocInfo != null){ 
      //query data structure. 
      ViewHolder holder = (ViewHolder)view.getTag(); 

      //Set data to display. 
      holder.txtFullName.setText(pocInfo.getFullName()); 
      holder.txtEmailAddress.setText(pocInfo.getEmailAddress()); 
     } 

     return view; 
    } 

    //Class to hold data structure on view with POC Information. 
    static class ViewHolder{ 
     private TextView txtFullName; 
     private TextView txtEmailAddress; 
    } 
} 

및 채우는 코드 : 여기

John Brown 
Sue Fields 
Mark Twain 

가 내 어댑터에 대한 코드입니다 회 전자 :

Spinner spSpinner = (Spinner)findViewById(R.id.spPOCs); 
spSpinner.setAdapter(new POCInfoAdapter(this, DBAdapter.queryAll())); 

DBA dapter.queryAll()은 POCInfo 유형의 List를 리턴합니다. POCInfoAdapter 클래스는 전자 메일 주소가 필요한 많은 다른 활동에서도 사용되므로 getName()을 FullName 만 반환하도록 변경할 수 없습니다.

아이디어가 있으십니까?

+0

삭제이 줄 holder.txtEmailAddress = (텍스트 뷰) view.findViewById (R.id.txtEmailAddress)에 의해이 레이아웃을 팽창 수 –

+0

OP의 마지막 줄에서 말했듯이이 클래스는 필요한 다른 활동에서 사용되기 때문에 getView를 변경할 수 없습니다. – Robert

+0

... 그런 다음 클래스의 복사본을 만들고 제거하고 그것을 사용하십시오 ... 그것을 숨기고 그 플래그를 적절하게 설정하는 깃발이 있습니다 – jsimpson

답변

0

라디오 버튼을 포함하여 표시 할 항목의 수에 관계없이 사용자 정의 된 레이아웃으로 구성 할 수 있습니다. 당신은 당신의 코드

view = mInflater.inflate(R.layout.poc_list, null); 
관련 문제