在微调器中将默认值设置为“选择”

时间:2017-02-20 17:09:40

标签: java android arraylist spinner android-arrayadapter

我们如何在微调器中将“选择”(默认值)设置为第一个值?我浏览了这里,并没有找到任何明确的解决方案或者没有理解它们。我正在粘贴下面的示例代码。请根据我的理解建议基于相同的解决方案或解释。谢谢!

这是我的MainActivity:

int[] icons = new int[]{R.drawable.bike, R.drawable.briefcase,
        R.drawable.butterfly, R.drawable.coffee, R.drawable.home, R.drawable.kids, R.drawable.monitoring};

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_page2);
    spinner = (Spinner) findViewById(R.id.spinner1);
    CustomAdapter customAdapter = new CustomAdapter(this, getResources().getStringArray(R.array.titles),
            getResources().getStringArray(R.array.description), icons);
    spinner.setAdapter(customAdapter);
   }

这是我的适配器

public class CustomAdapter  extends ArrayAdapter<String>{

Context c;
String [] titles;
String [] desc;
int [] icons;
public CustomAdapter(Context context, String[] titles, String [] desc, int [] imgs) {
    super(context, R.layout.layout_row, R.id.titles, titles);
    this.c = context;
    this.titles = titles;
    this.desc = desc;
    this.icons = imgs;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    MyViewHolder holder = null;
    if(row == null){
        LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.layout_row, parent, false);
        holder = new MyViewHolder(row);
        row.setTag(holder);
    }else {
        holder = (MyViewHolder) row.getTag();
    }
    holder.img_Icon.setImageResource(icons[position]);
    holder.tv_Titles.setText(titles[position]);
    holder.tv_Desc.setText(desc[position]);
    return row;
}
}

class MyViewHolder{
TextView tv_Titles;
TextView tv_Desc;
ImageView img_Icon;
public MyViewHolder(View v) {
    tv_Titles = (TextView) v.findViewById(R.id.titles);
    tv_Desc= (TextView) v.findViewById(R.id.desc);
    img_Icon = (ImageView) v.findViewById(R.id.icons);
}
}

我的字符串数组res:

<string-array name="titles">
    <item>Sunday</item>
    <item>Monday</item>
    <item>Tuesday</item>
    <item>Wednesday</item>
    <item>Thursday</item>
    <item>Friday</item>
    <item>Saturday</item>
</string-array>

<string-array name="description">
    <item>This is Sunday</item>
    <item>This is Monday</item>
    <item>This is Tuesday</item>
    <item>This is Wednesday</item>
    <item>This is Thursday</item>
    <item>This is Friday</item>
    <item>This is Saturday</item>
</string-array>

1 个答案:

答案 0 :(得分:0)

添加“选择”作为titles数组的第一项,如果行位置为0,则在CustomAdapter中添加“{选择”,然后仅设置holder.tv_Titles.setText(titles[position]);并将older.img_Iconholder.tv_Desc的可见性设置为{{ 1}}。单击任何微调器项目,检查单击的项目位置是否为0。如果它为0则显示错误或忽略。

相关问题