好的,以下是示例代码:
1. 建立数据库
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "my_db";
private static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "my_table";
public static final String COLUMN_DATE = "date";
public static final String COLUMN_PROJECT = "project";
public static final String COLUMN_VENUE = "venue";
private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_DATE + " TEXT,"
+ COLUMN_PROJECT + " TEXT,"
+ COLUMN_VENUE + " TEXT)";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
```
2. 插入数据
```java
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MyDatabaseHelper.COLUMN_DATE, "2022-01-01");
values.put(MyDatabaseHelper.COLUMN_PROJECT, "Project A");
values.put(MyDatabaseHelper.COLUMN_VENUE, "Venue A");
db.insert(MyDatabaseHelper.TABLE_NAME, null, values);
values.put(MyDatabaseHelper.COLUMN_DATE, "2022-01-01");
values.put(MyDatabaseHelper.COLUMN_PROJECT, "Project B");
values.put(MyDatabaseHelper.COLUMN_VENUE, "Venue B");
db.insert(MyDatabaseHelper.TABLE_NAME, null, values);
values.put(MyDatabaseHelper.COLUMN_DATE, "2022-01-02");
values.put(MyDatabaseHelper.COLUMN_PROJECT, "Project C");
values.put(MyDatabaseHelper.COLUMN_VENUE, "Venue C");
db.insert(MyDatabaseHelper.TABLE_NAME, null, values);
db.close();
```
3. 查询数据
```java
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {
MyDatabaseHelper.COLUMN_DATE,
MyDatabaseHelper.COLUMN_PROJECT,
MyDatabaseHelper.COLUMN_VENUE
};
String selection = MyDatabaseHelper.COLUMN_DATE + " = ?";
String[] selectionArgs = {"2022-01-01"};
Cursor cursor = db.query(
MyDatabaseHelper.TABLE_NAME,
projection,
selection,
selectionArgs,
null,
null,
null
);
List<String> data = new ArrayList<>();
while (cursor.moveToNext()) {
String date = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_DATE));
String project = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_PROJECT));
String venue = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_VENUE));
data.add(date + " - " + project + " - " + venue);
}
cursor.close();
db.close();
```
4. 显示数据
```java
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new MyAdapter(data));
```
5. MyAdapter
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<String> mData;
public MyAdapter(List<String> data) {
mData = data;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(mData.get(position));
}
@Override
public int getItemCount() {
return mData.size();
}
static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(android.R.id.text1);
}
}
}
```
6. Spinner
```java
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.spinner_items, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedItem = parent.getItemAtPosition(position).toString();
List<String> data = new ArrayList<>();
if (selectedItem.equals("All")) {
data = getAllData();
} else {
data = getDataByDate(selectedItem);
}
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
recyclerView.setAdapter(new MyAdapter(data));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
```
7. getAllData
```java
public List<String> getAllData() {
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {
MyDatabaseHelper.COLUMN_DATE,
MyDatabaseHelper.COLUMN_PROJECT,
MyDatabaseHelper.COLUMN_VENUE
};
Cursor cursor = db.query(
MyDatabaseHelper.TABLE_NAME,
projection,
null,
null,
null,
null,
null
);
List<String> data = new ArrayList<>();
while (cursor.moveToNext()) {
String date = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_DATE));
String project = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_PROJECT));
String venue = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_VENUE));
data.add(date + " - " + project + " - " + venue);
}
cursor.close();
db.close();
return data;
}
```
8. getDataByDate
```java
public List<String> getDataByDate(String date) {
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {
MyDatabaseHelper.COLUMN_DATE,
MyDatabaseHelper.COLUMN_PROJECT,
MyDatabaseHelper.COLUMN_VENUE
};
String selection = MyDatabaseHelper.COLUMN_DATE + " = ?";
String[] selectionArgs = {date};
Cursor cursor = db.query(
MyDatabaseHelper.TABLE_NAME,
projection,
selection,
selectionArgs,
null,
null,
null
);
List<String> data = new ArrayList<>();
while (cursor.moveToNext()) {
String project = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_PROJECT));
String venue = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_VENUE));
data.add(project + " - " + venue);
}
cursor.close();
db.close();
return data;
}
```
希望这份示例代码能够帮到你!