Android 使用arraylist将sqlite中的现有数据填充到微调器中
大家好,我很难将现有数据从sqlite绑定到spinner。我必须申请arraylist吗?如果是,我该怎么做?请帮助我,我还是新的,这是我的项目Android 使用arraylist将sqlite中的现有数据填充到微调器中,android,sqlite,arraylist,android-sqlite,Android,Sqlite,Arraylist,Android Sqlite,大家好,我很难将现有数据从sqlite绑定到spinner。我必须申请arraylist吗?如果是,我该怎么做?请帮助我,我还是新的,这是我的项目 Spinner SpListofShop = findViewById(R.id.SpListofShop); ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simpl
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);
以下是从数据库获取数据的方式:
public Cursor alldata()
{
ArrayList<String> values = new ArrayList<String>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("Select * from shop", null);
return cursor;
}
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);
我真的希望你们能帮我我太绝望了
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);
调用公共arraylist函数的编码
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);
这是调用databasehelper.java中公共arraylist的编码:
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);
微调器SpListofShop=findviewbyd(R.id.SpListofShop);
ArrayAdapter=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple_微调器_下拉列表_项,db.alldata());
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
SpListofShop.setAdapter(适配器);
1.将所有数据更改如下:
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);
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;
}
public ArrayList alldata()
{
ArrayList值=新的ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(“从商店中选择*”,null);
对于(int i=0;i您不需要任何数组或列表,while(cursor.moveToNext())
loop-只需使用SimpleCorsorAdapter
代替,不-不要使用任何ArrayAdapter
s。我可以知道为什么不能使用ArrayAdapter吗?现有数据有一个名为shop的表,其中只有一列名为shopname。因此,我要在spinner上显示的数据是shopname中的数据。是bc吗?我只有一列吗r?@pskinkwhy?因为你不必为ArrayAdapter
使用的popolate-tne-list/arrau使用任何循环,使用SimpleCursorAdapter
你只需在构造函数中传递一个光标即可-仅此而已-另外,你在OnItemSelectedListener\onItemSelected
方法中有有效的id
,现在我看到了感谢您提供的信息:)@pskinki想知道行名是第一个数据还是列名吗?我很困惑,也非常感谢你的步骤和编码:)@touhidulislam@j-h13我刚才回答了当数据来自光标时为什么不应该使用ArrayAdapter
-为什么坚持使用它?@j-h13,选择*。..
返回表中的所有数据,但是,您希望在微调器上显示特定名称,例如,名称
行的值。如果是,请将行名称
替换为名称
@j-h13此答案是否解决了您的问题?如果是,请接受it@TouhidulIslam对不起,先生,它不起作用了。对不起,回信晚了