我有一点问题.好吧,让我先说明我想要完成的事情.我有一个旋转器,可以从存储的数组中拉出字符串.像这样,你不需要阅读它:
ArrayAdapter<?> healthadapter = ArrayAdapter.createFromResource(this, R.array.health, android.R.layout.simple_spinner_item);
mHealthSpin = (Spinner) findViewById(R.id.health_spin);
healthadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mHealthSpin.setAdapter(healthadapter);
Run Code Online (Sandbox Code Playgroud)
简单而且几乎足够.我想Spinner.在RadioButton没有必要的情况下添加图像.所以Spinner应该弹出并有一个列表:
TEXT *IMAGE* TEXT2 *IMAGE* TEXT3 *IMAGE*
到目前为止我有一个习惯SimpleAdapter.
这是问题!! :
文字出现但不是图像.
这是代码:
public class stageadapter extends SimpleAdapter {
private Context localContext;
private ArrayList<HashMap<String, Object>> localList;
public stageadapter(Context context, ArrayList<HashMap<String, Object>> list, int resource, String[] from, int[] to) {
super(context, list, resource, from, to);
localContext = context;
localList = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
LayoutInflater inflater = (LayoutInflater) localContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.stagerow, null);
}
TextView name = (TextView) convertView.findViewById(R.id.stage_name);
name.setText((String) localList.get(position).get("Name"));
ImageView icon = (ImageView) convertView.findViewById(R.id.stage_icon);
icon.setImageResource(R.drawable.icon);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
LayoutInflater inflater = (LayoutInflater) localContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.stagerow, null);
}
TextView name = (TextView) convertView.findViewById(R.id.stage_name);
name.setText((String) localList.get(position).get("Name"));
ImageView icon = (ImageView) convertView.findViewById(R.id.stage_icon);
icon.setImageResource(R.drawable.icon);
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
我打算用一个switch语句为每个名字设置不同的图像.然而,我停在这里,直到我可以得到任何图像显示.
我怎么称呼:
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("Name", "One");
map.put("Icon", R.drawable.icon);
list.add(map);
map = new HashMap<String, Object>();
map.put("Name", "Two");
map.put("Icon", R.drawable.icon);
list.add(map);
mStageSpin = (Spinner) findViewById(R.id.stage_spin);
stageadapter adapter = new stageadapter(getApplicationContext(), list, R.layout.stagerow, new String[]{"Name", "Icon"}, new int[]{R.id.stage_name, R.id.stage_icon});
mStageSpin.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
我的答案在评论中.
Sam*_*gal 13
删除以下行 - 它使您的适配器混淆:
healthadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("Name", "One");
map.put("Icon", R.drawable.icon);
list.add(map);
map = new HashMap<String, Object>();
map.put("Name", "Two");
map.put("Icon", R.drawable.icon);
list.add(map);
Spinner spin = (Spinner) findViewById(R.id.spin);
myAdapter adapter = new myAdapter(getApplicationContext(), list,
R.layout.list_layout, new String[] { "Name", "Icon" },
new int[] { R.id.name, R.id.icon });
spin.setAdapter(adapter);
}
private class myAdapter extends SimpleAdapter {
public myAdapter(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.list_layout,
null);
}
HashMap<String, Object> data = (HashMap<String, Object>) getItem(position);
((TextView) convertView.findViewById(R.id.name))
.setText((String) data.get("Name"));
((ImageView) convertView.findViewById(R.id.icon))
.setImageResource(R.drawable.icon);
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16769 次 |
| 最近记录: |