android - 列表到阵列适配器
问题描述
这是我在我的查询DatabaseHelper
public List<String> getallstatus(){
List<String> list = new ArrayList<>();
String query = "select * from ref_status";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query,null);
try{
if(cursor.moveToFirst()){
do{
list.add(cursor.getString(0));
list.add(cursor.getString(1));
}while(cursor.moveToNext());
}
cursor.close();
db.close();
}catch(Exception e){
Log.e("onins" , e.getMessage(),e);
}
return list;
}
这是我的 dataProvider 类
public class DataProvider {
private String regcode, regname;
public DataProvider(String regcode, String regname){
this.regcode =regcode;
this.regname = regname;
}
public String getRegcode(){ return regcode; }
public void setRegCode(){ this.regcode = regcode; }
public String getRegname(){ return regname; }
public void setRegname() { this.regname = regname; }
@Override
public String toString(){
return regname;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof DataProvider){
DataProvider c = (DataProvider ) obj;
if(c.getRegname().equals(regname) && c.getRegcode()==regcode )
return true;
}
return false;
}
}
这是我onCreate
的主要活动
db = new DatabaseHelper(getApplicationContext());
List<String> result = db.getallstatus();
//spinner elements
ArrayList<DataProvider> datalist = new ArrayList<>();
ArrayAdapter<DataProvider> adapter = new ArrayAdapter<DataProvider>(this,android.R.layout.simple_spinner_dropdown_item,datalist);
// Drop down layout style - list view with radio button
// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//attaching adapter to spinner
valueofspin.setAdapter(adapter);
// valueofspin.setSelection(adapter.getPosition(myItem));
我只想将此 List 结果的结果传递给我的数组适配器。我是android studio的新手,希望有人可以帮助我。提前致谢。
解决方案
这样做在您的 Arrayadapter 中创建一个构造函数
public class ArrayAdapter extends....{
ArrayList<DataProvider> dataList;
List<String> list;
ArrayAdapter(Context context,resources id,ArrayList<DataProvider>
dataList,List<String> list){
this.context=context;
this.dataList = datalist;
this.list = list
}
}
在您的活动中...执行此操作
ArrayAdapter<DataProvider> adapter = new ArrayAdapter<DataProvider>(this,android.R.layout.simple_spinner_dropdown_item,datalist,result);
通过构造函数传递结果..
推荐阅读
- reactjs - REACT NATIVE - this.setState 在 onChangeText 中不起作用
- java - JAR 抛出 slf4j 丢失错误,即使它在其他 VM 上工作正常
- python - dyld:找不到符号:libSystem.B.dylib
- python - 为什么会出现这个错误?我是否正确解析它?这是一个关于应用程序的问题。谢谢
- php - foreach和优化中的php数据库查询
- excel - 将过滤器数据从 excel 转换为 google 表格的问题
- nativescript - Nativescript Vue:如何创建基本布局
- python-3.x - 绝对值函数不被识别为有纪律的凸程序 (CVXPY)
- python-3.x - 如何根据动画图中的发生时间对 3D 散点图进行颜色编码?
- html - 导航栏不显示切换按钮及其链接