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

前言:发现一种很方便的为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为一级下拉列表, 里面三个item
spinnerFirst.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方法处理点击事件即可。

发布了41 篇原创文章 · 获赞 10 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章