Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中定制Spinner小部件?_Android - Fatal编程技术网

如何在android中定制Spinner小部件?

如何在android中定制Spinner小部件?,android,Android,我在应用程序中使用微调器控件,我的代码是 Spinner s1=new Spinner(this); s1.setLayoutParams(new LayoutParams(100,30)); ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1); adapter.setDropDownViewResource(android.R.l

我在应用程序中使用微调器控件,我的代码是

    Spinner s1=new Spinner(this);
    s1.setLayoutParams(new LayoutParams(100,30));
    ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    adapter.add("One");
    adapter.add("Two");
    adapter.add("Three");
    s1.setAdapter(adapter);
这在linearLayout中可以很好地工作。当我在TableLayout中使用代码时,控件不会显示。我必须生成动态布局,因此我不使用XML部分,只通过Java代码添加控件

TableLayout tl=new TableLayout(this);
TableRow tr=new TableRow(this);
tr.addView(s1);
tl.addView(tr);
添加除微调器以外的所有组件


因此,请任何人对此给出一些解决方案。

现在使用以下方法将tl添加到ScrollView:

ScrollView sv = new Scrollview(this);
sv.addview(tl);
setContentview(sv);
它应该可以工作。

@code>@覆盖
@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;
    }

}
创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); requestWindowFeature(窗口。功能\u无\u标题); setContentView(R.layout.main); ArrayList=新建ArrayList(); HashMap=newHashMap(); 地图。放置(“名称”、“一”); 地图放置(“图标”,R.drawable.Icon); 列表。添加(地图); map=新的HashMap(); 地图。放置(“名称”、“两个”); 地图放置(“图标”,R.drawable.Icon); 列表。添加(地图); 微调器旋转=(微调器)findViewById(R.id.spin); myAdapter=新的myAdapter(getApplicationContext(),列表, R.layout.list_布局,新字符串[]{“Name”,“Icon”}, 新的int[]{R.id.name,R.id.icon}); spin.setAdapter(适配器); } 私有类myAdapter扩展了SimpleAdapter{ 公共myAdapter(上下文,列表>数据, int资源,字符串[]从,int[]到){ 超级(上下文、数据、资源、从、到); } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ if(convertView==null){ convertView=GetLayoutFlater()。充气(R.layout.list\U布局, 无效); } HashMap数据=(HashMap)getItem(位置); ((TextView)convertView.findViewById(R.id.name)) .setText((字符串)data.get(“名称”); ((ImageView)convertView.findViewById(R.id.icon)) .setImageResource(R.drawable.icon); 返回视图; } } 使用上述代码,您将获得问题的答案。 我希望这对你有帮助