要根据Spinner选择从SQLite数据库中选择项目,你需要执行以下步骤:
在Android Studio中创建一个新的项目,包括一个Spinner和一个ListView。
创建一个SQLite数据库,并在其中创建一个数据表用于存储项目信息。
创建一个自定义的适配器类,用于将数据库中的项目数据加载到Spinner中。
public class SpinnerAdapter extends ArrayAdapter {
private Context mContext;
private ArrayList mProjects;
public SpinnerAdapter(Context context, ArrayList projects) {
super(context, 0, projects);
mContext = context;
mProjects = projects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(android.R.layout.simple_spinner_item, parent, false);
}
TextView textView = convertView.findViewById(android.R.id.text1);
textView.setText(mProjects.get(position));
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
}
TextView textView = convertView.findViewById(android.R.id.text1);
textView.setText(mProjects.get(position));
return convertView;
}
}
public class MainActivity extends AppCompatActivity {
private Spinner mSpinner;
private ListView mListView;
private SQLiteDatabase mDatabase;
private SpinnerAdapter mSpinnerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSpinner = findViewById(R.id.spinner);
mListView = findViewById(R.id.list_view);
mDatabase = openOrCreateDatabase("project.db", MODE_PRIVATE, null);
mDatabase.execSQL("CREATE TABLE IF NOT EXISTS projects (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
ArrayList projects = new ArrayList<>();
Cursor cursor = mDatabase.rawQuery("SELECT * FROM projects", null);
if (cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
String projectName = cursor.getString(cursor.getColumnIndex("name"));
projects.add(projectName);
cursor.moveToNext();
}
}
cursor.close();
mSpinnerAdapter = new SpinnerAdapter(this, projects);
mSpinner.setAdapter(mSpinnerAdapter);
}
}
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
String selectedProject = (String) parent.getItemAtPosition(position);
Cursor cursor = mDatabase.rawQuery("SELECT * FROM projects WHERE name = ?", new String[]{selectedProject});
if (cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
// 获取项目详情并展示在ListView中
cursor.moveToNext();
}
}
cursor.close();
}
@Override
public void onNothingSelected(AdapterView> parent) {
// 当没有选择项目时的处理
}
});
这样,当你选择Spinner中的项目时,就会从SQLite数据库中加载对应的项目详情并展示在ListView中。请根据你的具体需求进行相应的修改和完善。