Android 单击项目时显示的值
我有一个数据库,其表有4列:Android 单击项目时显示的值,android,database,sqlite,android-sqlite,Android,Database,Sqlite,Android Sqlite,我有一个数据库,其表有4列: 名字 数量 卡路里 测量 插入列name中的值显示在微调器中 我的问题:单击一个项目时,是否可以显示与名称对应的数量值?如果是,那么我如何获得一些指导,请?这是一个数据库类,用于将数据存储到数据库中,并在此类上执行所有操作,如删除、插入、更新 数据库类 public class DetailDatabase extends SQLiteOpenHelper { private static final String DATABASE_NAME = "Det
- 名字
- 数量
- 卡路里
- 测量
name
中的值显示在微调器中
我的问题:单击一个项目时,是否可以显示与
名称
对应的数量值?如果是,那么我如何获得一些指导,请?这是一个数据库类,用于将数据存储到数据库中,并在此类上执行所有操作,如删除、插入、更新
数据库类
public class DetailDatabase extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "Detail.db";
public static final String TABLE_NAME = "Details";
public static final String COLUMN_NAME = "NAME";
public static final String COLUMN_QUANTITY = "QUANTITY";
public static final String COLUMN_CALORIES = "CALORIES";
public static final String COLUMN_MEASUREMENTS = "MEASUREMENTS";
public SeriesDetailDatabase(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(
"create table " + TABLE_NAME +
"( " +
COLUMN_NAME + " varchar ," +
COLUMN_QUANTITY + " varchar," +
COLUMN_CALORIES + " varchar," +
COLUMN_MEASUREMENTS + " varchar)"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL(" DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean insertOrUpdateDetails(String name, String quantity, String calories, String measurements) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_NAME, name);
contentValues.put(COLUMN_QUANTITY, quantity);
contentValues.put(COLUMN_CALORIES, calories);
contentValues.put(COLUMN_MEASUREMENTS, measurements);
int rows = db.update(TABLE_NAME, contentValues, COLUMN_NAME + " = " + name, null);
if (rows == 0) {
db.insert(TABLE_NAME, null, contentValues);
}
return true;
}
public Cursor getData(int id) {
SQLiteDatabase db = this.getReadableDatabase();
return db.rawQuery(" select * from " + TABLE_NAME + " where id= " + id + "", null);
}
public int numberOfRows() {
SQLiteDatabase db = this.getReadableDatabase();
return (int) DatabaseUtils.queryNumEntries(db, TABLE_NAME);
}
public boolean updateData(String name, String quantity) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_QUANTITY, quantity);
db.update(TABLE_NAME, contentValues, COLUMN_NAME + " = ? ", new String[]{name});
return true;
}
public Integer deleteData(Integer id) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_NAME, COLUMN_NAME + " = ? ", new String[]{Integer.toString(id)});
}
public void deleteRow(String value) {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_BOOK_ID + "='" + value + "'");
db.close();
}
public List<Model> getAllData() {
List<Model> list = new LinkedList<>();
// 1. build the query
String query = "SELECT * FROM " + TABLE_NAME + " ORDER BY " + COLUMN_NAME;
// 2. get reference to writable DB
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);
// 3. go over each row, build book and add it to list
Model model = null;
if (cursor.moveToFirst()) {
do {
model = new Model();
model.setName(cursor.getString(0));
model.setQuantity(cursor.getString(1));
model.setCalories(cursor.getString(2));
model.setMeasurements(cursor.getString(3))
// Add data to list
list.add(model);
} while (cursor.moveToNext());
}
db.close();
return list;
}
public void deleteAll() {
SQLiteDatabase db = this.getReadableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME);
db.close();
}
}
微调器有一个适配器类
适配器类
public class CustomAdapter extends ArrayAdapter<String> {
private ArrayList data;
private LayoutInflater inflater;
public CustomAdapter(Context homeActivity, int spinner_rows, ArrayList customListViewValuesArr) {
super(activity, spinner_rows, customListViewValuesArr);
data = customListViewValuesArr;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
return getCustomView(position, parent);
}
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
return getCustomView(position, parent);
}
private View getCustomView(int position, ViewGroup parent) {
View row = inflater.inflate(R.layout.list_item, parent, false);
Model model;
model = (Model) data.get(position);
TextView mNameView = row.findViewById(R.id.tvName);
mNameView.setText(model.getName());
return row;
}
}
公共类CustomAdapter扩展了ArrayAdapter{
私有数组列表数据;
私人充气机;
公共CustomAdapter(上下文homeActivity、int微调器_行、ArrayList CustomListViewValuesAR){
超级(活动、微调器行、customListViewValuesArr);
数据=CustomListViewValuesAR;
充气器=(LayoutInflater)activity.getSystemService(Context.LAYOUT\u充气器\u SERVICE);
}
@凌驾
公共视图getDropDownView(int位置,视图转换视图,@NonNull视图组父级){
返回getCustomView(位置,父级);
}
@非空
@凌驾
公共视图getView(int位置,视图转换视图,@NonNull视图组父级){
返回getCustomView(位置,父级);
}
私有视图getCustomView(int位置,视图组父级){
视图行=充气机。充气(R.layout.list\u项,父项,false);
模型;
model=(model)data.get(position);
TextView mNameView=row.findviewbyd(R.id.tvName);
mNameView.setText(model.getName());
返回行;
}
}
这是一个主活动类,您可以在其中设置微调器上的适配器
主要活动
package com.vrvirtual.lionservicescitizenapp;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationManager;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ArrayList<Model> list;
private Model model;
private Spinner mSpinnerView;
private String Name = "";
private String Quantity = "";
private String Calories = "";
private String Measurements = "";
private DetailDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database=new DetailDatabase(this);
database.insertOrUpdateDetails("ABC","1","1000","aaa");
database.insertOrUpdateDetails("xyz","2","3000","bbb");
try {
mSpinnerView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
model=list.get(position);
Name = model.getName();
CitQuantityyName = model.getQuantity();
Calories = model.getCalories();
Measurements = model.getMeasurements();
}
@Override
public void onNothingSelected(AdapterView<?> adapter) {
}
});
}
private void setCityAdapter() {
try {
list=database.getAllData();
ArrayAdapter adapter = new CostomAdapter(this, R.layout.list_item, list);
mSpinnerView.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "On Destroy .....");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG, "On Pause .....");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG, "On Restart .....");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "On Resume .....");
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "On Start .....");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "On Stop .....");
}
}
package com.vrvirtual.lionservicescitizenapp;
导入android.annotation.SuppressLint;
导入android.app.Notification;
导入android.app.NotificationManager;
公共类MainActivity扩展AppCompatActivity实现View.OnClickListener{
私有数组列表;
私有模型;
私人微调器mSpinnerView;
私有字符串名称=”;
私有字符串数量=”;
私人字符串=”;
私有字符串度量=”;
私有数据库;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
数据库=新的详细信息数据库(此);
数据库。insertOrUpdateDetails(“ABC”、“1”、“1000”、“aaa”);
数据库。insertOrUpdateDetails(“xyz”、“2”、“3000”、“bbb”);
试一试{
mSpinnerView.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView AdapterView、视图视图、整型位置、长id){
model=list.get(位置);
Name=model.getName();
CitQuantityName=model.getQuantity();
卡路里=model.getcarries();
Measurements=model.getMeasurements();
}
@凌驾
未选择公共无效(AdapterView适配器){
}
});
}
私有void setCityAdapter(){
试一试{
list=database.getAllData();
ArrayAdapter=新的CostoAdapter(此,R.layout.list_项,list);
mSpinnerView.setAdapter(适配器);
}捕获(例外e){
e、 printStackTrace();
}
}
@凌驾
public void onBackPressed(){
super.onBackPressed();
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
Log.i(标记“On Destroy…”);
}
@凌驾
受保护的void onPause(){
super.onPause();
Log.i(标记“暂停时…”);
}
@凌驾
受保护的void onRestart(){
super.onRestart();
Log.i(标记“重新启动时…”);
}
@凌驾
受保护的void onResume(){
super.onResume();
Log.i(标记“在简历上…”);
}
@凌驾
受保护的void onStart(){
super.onStart();
Log.i(标记“启动时…”);
}
@凌驾
受保护的void onStop(){
super.onStop();
Log.i(标记“On Stop…”);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<Spinner
android:id="@id/fault_category"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
list_item.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
您可以在arraylist中添加所有数据并使用模型类型。@ShivamKumar您能给我一个教程或一些代码作为模型指南吗?是的,我会给代码的,请稍候。@ShivamKumar非常感谢您!!您是最好的!如果您解决了问题,请接受答案
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>