欢迎大家来到IT世界,在知识的湖畔探索吧!
1.写一个类,用来存绑定的数据
public class DictPair {
private String name;
private String key;
private String value;
public DictPair() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}
欢迎大家来到IT世界,在知识的湖畔探索吧!
我这里,用了id,这个是数据字典的值,其实可以再加一个比较好,比如加一个dictKey,dictValue,然后一个id,这里直接用key表示字典值,用value表示字典的中文描述,用name,表示字典的类型,比如sex,是性别类型,其实这个很多时候用不到,根据自己需要去附加吧.
所以这里的属性,最好是,id,key,value,name 这几个值,这样就好了.这样可以id,表示0,1,2,3..这样表示,spinner中的值是个序号,然后key表示字典中的值,有时候字典中的值,可能是不连续的,不能作为
spinner的序号,所以要加上id,这个序号,这样后面处理起来就方便多了,我因为没有加,后面有单独处理的.
2.然后去写适配器
欢迎大家来到IT世界,在知识的湖畔探索吧!
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.baidu.idl.face.main.domain.DictPair;
import com.baidu.idl.facesdkdemo.R;
import java.util.List;
public class MddSpinnerAdapter extends BaseAdapter {
private List<DictPair> mList;
private Context mContext;
public MddSpinnerAdapter(Context pContext, List<DictPair> pList) {
this.mContext = pContext;
this.mList = pList;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater _LayoutInflater=LayoutInflater.from(mContext);
convertView=_LayoutInflater.inflate(R.layout.item_mdd_spinner, null);
if(convertView!=null)
{
TextView layout_mdd_docreate_spinner_textview=(TextView)convertView.findViewById(R.id.layout_mdd_docreate_spinner_textview);
layout_mdd_docreate_spinner_textview.setText(mList.get(position).getValue());
}
return convertView;
}
}
可以看到自己写的适配器也挺简单,就是继承baseadapter,然后重写一些方法就可以了
3.上面用到的xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/layout_mdd_docreate_spinner_textview"
android:singleLine="true"
android:layout_gravity="center"
android:paddingTop="4dp"
android:textSize="14sp"
android:textAlignment="center"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
4.这样就可以了可以去使用了.
a.去在xml中添加Spinner
比如:显示性别
欢迎大家来到IT世界,在知识的湖畔探索吧! <Spinner
android:id="@+id/layout_mdd_docreate_spinner_sexSpinner"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@drawable/layout_mdd_docreate_ed_hui_r4"></Spinner>
b.然后再去初始化数据:
String sexResult = YdHttpPostUtils.getDict("sex");
sexPair = YdCommonUtils.getDictPairs(sexResult,sexPair);
Spinner layout_mdd_docreate_spinner_sexSpinner = findViewById(R.id.layout_mdd_docreate_spinner_sexSpinner);
MddSpinnerAdapter sexAdapter = new MddSpinnerAdapter(this,sexPair);
layout_mdd_docreate_spinner_sexSpinner.setAdapter(sexAdapter);
可以看到, YdCommonUtils.getDictPairs获取了字典list以后,然后,拿到数据,构建出一个MaddSpinnerAdapter适配器,然后把适配器,设置给xml中的spinner就可以了,这样就初始化完了这个
spinner了.
c.然后根据某个值去显示上次选择的值.
Spinner layout_mdd_docreate_spinner_hunyinzhuangkuang = findViewById(R.id.layout_mdd_docreate_spinner_hunyinzhuangkuang);
String oneOrtwoKey = dataObj.getString("oneOrtwo");
layout_mdd_docreate_spinner_hunyinzhuangkuang.setSelection(getPositionByKey(oneOrtwoPair,Integer.valueOf(oneOrtwoKey)),true);
d.然后获取选择的值.
Spinner layout_mdd_docreate_spinner_sexSpinner = findViewById(R.id.layout_mdd_docreate_spinner_sexSpinner);
DictPair sexDictPair = (DictPair) layout_mdd_docreate_spinner_sexSpinner.getSelectedItem();
baseInfo.put("sex",sexDictPair.getKey());
editor.putString("mdd_usersex",sexDictPair.getKey());
上面这样获取值就可以了,注意上面是单选,所以获取出来是一个item,获取了直接用就可以了.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/33810.html