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 만 반환하도록 변경할 수 없습니다.
아이디어가 있으십니까?
삭제이 줄 holder.txtEmailAddress = (텍스트 뷰) view.findViewById (R.id.txtEmailAddress)에 의해이 레이아웃을 팽창 수 –
OP의 마지막 줄에서 말했듯이이 클래스는 필요한 다른 활동에서 사용되기 때문에 getView를 변경할 수 없습니다. – Robert
... 그런 다음 클래스의 복사본을 만들고 제거하고 그것을 사용하십시오 ... 그것을 숨기고 그 플래그를 적절하게 설정하는 깃발이 있습니다 – jsimpson