android - 列表到数组适配器

标签 android arrays adapter

这是我在 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;
    }

这是我的数据提供者类

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;
    }

}

这是我主要 Activity 中的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));

我只想将此列表结果的结果传递给我的数组适配器。我是 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
}
}

在您的 Activity 中...执行此操作

    ArrayAdapter<DataProvider> adapter = new ArrayAdapter<DataProvider>(this,android.R.layout.simple_spinner_dropdown_item,datalist,result);

通过构造函数传递结果..

关于android - 列表到数组适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50206924/

相关文章:

javascript - 快速查找字符串是否在数组中的方法

Android ViewPager 自动换页

java - 如何存储和检索 RecyclerView 项目以供离线使用

android - SQLite 数据和其他应用程序保存的文件存储在哪里?

android - 自动完成时疯狂的 SQLite 和光标泄漏

java - 重用 RecyclerView 适配器

java - ContentProvider.createUri 无法解析方法?

android - 在我的应用程序中显示 PDF 文件时遇到问题

arrays - 汇编语言中数组的冒泡排序

java - 如何在java中创建具有不同数据类型的 map 列表?