-2

大家好,我无法将现有数据从 sqlite 绑定到微调器。我必须申请 arraylist 吗?如果是这样,我该怎么做?请帮助我,我还是新手,这是针对我的项目的。

这是从数据库中获取数据的方式:

public Cursor alldata()
{

  ArrayList<String> values = new ArrayList<String>();
  SQLiteDatabase db = this.getReadableDatabase();
  Cursor cursor = db.rawQuery("Select * from shop", null);
  return cursor;
}

这是应该接收数据并将其显示在微调器上的编码,但我不知道该怎么做:

SpListofShop = (Spinner) findViewById(R.id.SpListofShop);

    Cursor cursor = db.alldata();
    if(cursor.getCount()==0)
    {
        Toast.makeText(getApplicationContext(), "NO DATA", Toast.LENGTH_SHORT).show();
    }
    else
    {
        while(cursor.moveToNext())
        {

        }

    }

我真的希望你们能帮助我我太绝望了

调用公共 arraylist 函数的编码

这是在 databasehelper.java 中调用公共数组列表的编码:

Spinner SpListofShop = findViewById(R.id.SpListofShop);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),  android.R.layout.simple_spinner_dropdown_item, db.alldata());
    adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

    SpListofShop.setAdapter(adapter);
4

1 回答 1

0

1.更改alldata如下:

public ArrayList<String> alldata()
{

    ArrayList<String> values = new ArrayList<String>();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery("Select * from shop", null);
    for (int i=0;i<cursor.getCount();i++){
        values.add(cursor.getString(cursor.getColumnIndex("row_name")));
        //edit, change row_name with your row
    }
    cursor.close();
    return values;
}

2.像这样更改微调器代码:

Spinner SpListofShop = findViewById(R.id.SpListofShop);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(),  android.R.layout.simple_spinner_dropdown_item, alldata());
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

SpListofShop.setAdapter(adapter);
于 2018-11-24T08:52:29.047 回答