使用string-arrays为adapterview添加数据源

来源:互联网 发布:宝鸡加工中心编程招聘 编辑:程序博客网 时间:2024/06/16 10:12

前言:发现一种很方便的为AdapterView(如ListView, Spinner)添加数据源的方式。
转载请注明出处:http://blog.csdn.net/u014158743/article/details/52387990

首先, 在strings.xml中添加一组string-array

    <string-array name="battery_level">        <item>电池电量</item>        <item>1%</item>        <item>2%</item>        <item>3%</item>        <item>4%</item>        <item>5%</item>        <item>6%</item>        <item>7%</item>        <item>8%</item>        <item>9%</item>        <item>10%</item>        <item>11%</item>        <item>12%</item>        <item>13%</item>        <item>14%</item>        <item>15%</item>    </string-array>

然后在布局文件中直接android:entries引用即可, 如下:

<Spinner        android:id="@+id/battery_sp"        android:entries="@array/battery_level"        android:layout_gravity="center_horizontal"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/>

下拉列表两级联动小Demo:

// spinnerFirst为一级下拉列表, 里面三个itemspinnerFirst.setOnItemSelectedListener(new OnItemSelectedListener() {    @Override    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {        // TODO Auto-generated method stub        Context context = AdjustTemplateActivity.this;        ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_dropdown_item_1line);        switch (position) {        case 0:            adapter.addAll(context.getResources().getStringArray(R.array.jtj_level_values));// 随便定义三组string-array            break;        case 1:            adapter.addAll(context.getResources().getStringArray(R.array.lh_level_values));            break;        case 2:            adapter.addAll(context.getResources().getStringArray(R.array.hcg_level_values));            break;        default:            break;        }        spinnerSecond.setAdapter(adapter);    }    @Override    public void onNothingSelected(AdapterView<?> arg0) {        // TODO Auto-generated method stub    }});

ListView同样可以, 比如说一个简易的ListView的Dialog:

public AlertDialog showListDialog(int arrayId){    ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1,            context.getResources().getStringArray(arrayId));//这里    AlertDialog dialog = new AlertDialog.Builder(context).setAdapter(adapter, new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {        }    }).create();    dialog.show();    return dialog;}

调用:

listDialog = showListDialog(R.array.cal_item);listDialog.getListView().setOnItemClickListener(this);

再重写onItemClick方法处理点击事件即可。

3 0
原创粉丝点击