getView与放大器之间的差异; getDropDownView在SpinnerAdapter [英] Difference between getView & getDropDownView in SpinnerAdapter
问题描述
在实现SpinnerAdapter你得到<一href="http://developer.android.com/reference/android/widget/SpinnerAdapter.html#getDropDownView%28int,%20android.view.View,%20android.view.ViewGroup%29">getDropDownView,从 getView
,你必须当你需要扩展它是如何区别 BaseAdapter
。
When you implement SpinnerAdapter you get getDropDownView, how does it differ from getView
which you have when you need to extend BaseAdapter
.
推荐答案
如果我们看一下下面的code,我们在getView和getDropDownView名称和值数组。
If we look at the following code, we have name and value array in getView and getDropDownView.
private void initView() {
SpinnerDropDownAdapter sddadapter = new SpinnerDropDownAdapter(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, sddadapter.name);
Spinner getViewSP = (Spinner) findViewById(R.id.getview_sp);
getViewSP.setAdapter(adapter);
Spinner getViewWDropDownSP = (Spinner) findViewById(R.id.getview_w_drop_down_sp);
getViewWDropDownSP.setAdapter(sddadapter);
}
static class SpinnerDropDownAdapter extends BaseAdapter implements
SpinnerAdapter {
Context context;
SpinnerDropDownAdapter(Context ctx) {
context = ctx;
}
String[] name = { " One", " Two", " Three", " Four", " Five", " Six",
" Seven", " Eight" };
String[] value = { " 1", " 2", " 3", " 4", " 5", " 6", " 7", " 8" };
@Override
public int getCount() {
return name.length;
}
@Override
public String getItem(int pos) {
// TODO Auto-generated method stub
return name[pos];
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView text = new TextView(context);
text.setTextColor(Color.BLACK);
text.setText(name[position]);
return text;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
TextView text = new TextView(context);
text.setTextColor(Color.BLACK);
text.setText(value[position]);
return text;
}
}
如果getDropDownView方法不落实,下拉弹出会得到getView的看法。因此,将只显示名字。
If getDropDownView method is not implemented, the drop down pop up will get the view from getView. Thus, it will only show name.
当两个getView和getDropDownView实现,前者获得的名称的,后者获得的值的,微调休息时将获得的名称的距离getview和下拉弹出将获得的值的。
When both getView and getDropDownView is implemented, the former getting name and the latter getting value, the spinner at rest will get name from getview and the drop down pop up will get value.
这篇关于getView与放大器之间的差异; getDropDownView在SpinnerAdapter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!