安卓 日常问题 工作日志5

android
RecyclerView插件的重要性   https://www.jianshu.com/p/c4cfe38a91ed
RecyclerView重要的是 和adapt的 配合使用 完成 列表展示 橫向 纵向 

天气 选择器 下拉框 使用
Spinner 以及适配器   
有主要有两种方式去做
private Spinner spinnerWeather;  //天气的下拉框
private ArrayAdapter adapterWeather; //天气的适配器
private String Weather;
private String weatherNumber;
1.在activity中创建 下拉框的内容
2.在resvaluesarrays.XML中编写列表
<?xml version="1.0" encoding="utf-8"?>
<resources>

<string-array name="weathers">
    <item>晴</item>
<item>多云</item>
<item>阵雨</item>
<item>雨夹雪</item>
<item>雨</item>
<item>雾</item>
<item>暴雪</item>
<item>沙尘</item>
<item>霾</item>
</string-array>
</resources>
在XML文件中
<Spinner
android:id="@+id/spinnerWeather"
android:layout_width="100dp"
android:spinnerMode="dialog" //两种形式 dialog为消息框模式 另一种为下拉框形式
    android:layout_height="wrap_content"
android:prompt="@string/getWeather"
android:popupBackground="@color/actionsheet_blue"
android:entries="@array/weathers"/>
activity中 
//天气下拉框
spinnerWeather=(Spinner)view.findViewById(R.id.spinnerWeather);
//天气下拉框 适配器   //将可选内容与ArrayAdapter连接起来
1. adapterWeather=ArrayAdapter.createFromResource(getActivity(), R.array.weathers, android.R.layout.simple_spinner_item); //根据资源文件生成数组

1.或者自己定义数组
//        //数据
// data_list = new ArrayList<String>();
// data_list.add("雨");
// data_list.add("雪");
// data_list.add("风");
// data_list.add("晴");
// adapterWeather= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data_list); //另外一种动态添加的形式 data_list为 数据数组 包含天气

2. //设置下拉列表的风格
adapterWeather.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//将数据写入adapterWeather候 将adapterWeather添加到spinnerWeather中
        spinnerWeather.setAdapter(adapterWeather);

//添加事件Spinner事件监听
spinnerWeather.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
//设置组件正常显示 View类的setVisibility()方法
spinnerWeather.setVisibility(View.VISIBLE);



重新加载页面后 回显 数据库中保存的 下拉框的值 必须紧挨着写 否则 无效 无法回显
//设置 天气 下拉框的 值
if(landForm.getWeather()==null){
spinnerWeather.setSelection(0);
}else{
//注意 适配器的 回显问题 适配器在 必须得 初始化适配器 否则 程序不知道 适配器 是啥,回显不了 只能 默认初始值
// int parseInt = Integer.parseInt(landForm.getWeather());
switch (landForm.getWeather()){
case "晴":
spinnerWeather.setSelection(0,true);
break;
case "多云":
spinnerWeather.setSelection(1,true);
break;
case "阵雨":
spinnerWeather.setSelection(2,true);
break;
case "雨夹雪":
spinnerWeather.setSelection(3,true);
break;
case "雨":
spinnerWeather.setSelection(4,true);
break;
case "雾":
spinnerWeather.setSelection(5,true);
break;
case "暴雪":
spinnerWeather.setSelection(6,true);
break;
case "沙尘":
spinnerWeather.setSelection(7,true);
break;
default: //霾
spinnerWeather.setSelection(8,true);
break;
}


//使用XML形式操作 天气下拉框 点击响应事件   在设置完监听后 这里 编写 点击响应时间 在 获取 被选中的值 并存入数据库 
class SpinnerXMLSelectedListener implements AdapterView.OnItemSelectedListener {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//存数字吧
Weather=adapterWeather.getItem(arg2).toString(); //这个是被选中的文本
weatherNumber=String.valueOf(arg2);//这个是被选中的文本的编号 是第几个
//arg2 就是被选中的 官方这么写参数的 我也没办法



}

public void onNothingSelected(AdapterView<?> arg0) {

}

}







参看网站
http://www.mybbchina.net/xialaliebiao/352218.html
http://dditblog.com/itshare_286.html
http://c.biancheng.net/view/3006.html
原文地址:https://www.cnblogs.com/dushutai/p/12624915.html