Reputation: 6307
I want to have custom spinner that has image and a textView in drop down list so I created different layout and inflated it, and its working fine but for layout of spinner before pressing spinner I just want to have a text like "choose from list" but when I inflating with
android.R.layout.simple_spinner_item
for getView, I'm just getting a drop down arrow and not text
How to populate layout in getView, do i have to create new dataset? different from dropdown? here is my code: I'm implementing SpinnerAdapter for custom adapter
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.spinner_item, parent, false);
ImageView iv = (ImageView) convertView.findViewById(R.id.iv);
TextView tv = (TextView) convertView.findViewById(R.id.tv1);
iv.setImageResource(R.drawable.flower);
tv.setText(itemList[position]);
return convertView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(android.R.layout.simple_spinner_item,
parent, false);
return convertView;
}
Upvotes: 0
Views: 934
Reputation: 1953
text1
is the identifier for TextView
in android.R.layout.simple_spinner_item
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(android.R.layout.simple_spinner_item,
parent, false);
TextView text1 = (TextView) convertView.findViewById(android.R.id.text1);
text1.setText(itemList[position]);
return convertView;
}
Upvotes: 1
Reputation: 409
Declare the ViewHolder Class inside your spinner adapter
private static class ViewHolder{
TextView tv_itemname;
}
And modify your getView()
method like this:
public View getView(final int position, View convertView, ViewGroup parent) {
View vi = convertView;
SpinnerListAdapter.ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.spinner_item_row, null);
holder = new SpinnerListAdapter.ViewHolder();
holder.tv_itemname = (TextView) vi.findViewById(R.id.tv_itemname);
vi.setTag( holder );
}
else
{
holder = (SpinnerListAdapter.ViewHolder) vi.getTag();
}
if (position == 0)
{
holder.tv_itemname.setText("Choose one of the following category");
}else{
holder.tv_itemname.setText(itemList[position]);
}
return vi;
}
Upvotes: 1