gpt4 book ai didi

java - 如何在数据库处理程序类中调用添加方法

转载 作者:行者123 更新时间:2023-12-01 09:25:47 25 4
gpt4 key购买 nike

嘿,这是我的第一篇文章,但我完全陷入困境。要么我不了解数据库(我真的有点把它放在一起尝试和学习),我创建了一个基本的 CRUD DBHandler 类,其中包含添加平面的方法。以及一个允许用户输入信息以保存到数据库的 Activity 。我真的很感谢任何指示、提示,或者如果你能给我看一个好的教程。我在 http://mobilesiri.com/android-sqlite-database-tutorial-using-android-studio/ 找到了用于构建此数据库的教程。

这是 DBHandler 类。

   public class DBHandler extends SQLiteOpenHelper {

//Database Version
private static final int DATABASE_VERSION = 1;
//Database Name
private static final String DATABASE_NAME = "avtoolsInfo";
//Plane info table name
private static final String TABLE_PLANES = "planeInfo";
// planes table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_TYPE = "type";
private static final String KEY_PLANE_CLASS = "plane_class";
private static final String KEY_FUEL_STYLE = "fuel_style";
private static final String KEY_NOTES = "notes";




public DBHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_PLANE_TABLE = "CREATE TABLE " + TABLE_PLANES + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_TYPE + " TEXT," + KEY_PLANE_CLASS + " TEXT," + KEY_FUEL_STYLE + " TEXT," + KEY_NOTES + " TEXT" + ")";
db.execSQL(CREATE_PLANE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
//Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PLANES);
//Creating tables again
onCreate(db);
}

// Adding a new plane
public void addPlane(PlaneInfo planeInfo)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, planeInfo.getName()); //plane name
values.put(KEY_TYPE, planeInfo.getType()); //plane type
values.put(KEY_PLANE_CLASS, planeInfo.getPlaneClass()); //plane class
values.put(KEY_FUEL_STYLE, planeInfo.getFuelStyle());//plane fuel style
values.put(KEY_NOTES, planeInfo.getNotes());//plane notes
// Inserting Row
db.insert(TABLE_PLANES, null, values);
// Closeing Database
db.close();

这是要添加的 Activity 。 [编辑。这是布局文件]

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="60dp">

<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_plane_name"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<EditText
android:id="@+id/input_plane_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/plane_name"
android:maxLines="1" />

</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
android:id="@+id/input_plane_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/input_layout_plane_name">

<EditText
android:id="@+id/plane_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/plane_type" />

</android.support.design.widget.TextInputLayout>

<TextView
android:id="@+id/plane_class_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/input_plane_type"
android:layout_alignParentLeft="true"
android:text="@string/plane_class_textview"/>

<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/plane_class_text"
android:layout_below="@id/input_plane_type"
></Spinner>

<TextView
android:id="@+id/fuel_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/spinner"
android:text="@string/fueling_type_textview"/>
<Spinner
android:id="@+id/spinner2"
android:layout_below="@id/spinner"
android:layout_toRightOf="@id/fuel_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content">


</Spinner>





<Button
android:id="@+id/save_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/save_button"
android:onClick="addPlane"/>

<android.support.design.widget.TextInputLayout
android:id="@+id/input_plane_notes"
android:layout_alignParentBottom="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/spinner2"
android:layout_above="@id/save_button">

<EditText
android:id="@+id/plane_notes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/plane_user_notes" />

</android.support.design.widget.TextInputLayout>

</RelativeLayout>

我真的非常感谢所有的帮助。

[此处编辑的是添加类]

    package com.example.jerem.avtools;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.graphics.drawable.DrawerArrowDrawable;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class AddNewPlane extends AppCompatActivity {

Spinner spinner2;
Spinner spinner;
ArrayAdapter<CharSequence> adapter;
ArrayAdapter<CharSequence> adapter2;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_new_plane);
spinner = (Spinner) findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this,R.array.plane_class_spinner_data,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) {

Toast.makeText(getBaseContext(),parent.getItemAtPosition(position)+" is selected",Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});

spinner2 = (Spinner) findViewById(R.id.spinner2);
adapter2 = ArrayAdapter.createFromResource(this,R.array.fueling_styles,android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
}

最佳答案

我觉得该链接显示了如何使用该类...无论如何,在这里

public class AddNewPlane extends AppCompatActivity {

Spinner spinner2;
Spinner spinner;
ArrayAdapter<CharSequence> adapter;
ArrayAdapter<CharSequence> adapter2;

DBHandler dbHandler; // add field

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_new_plane);

dbHandler = new DbHandler(this); // initialize

}

public void addPlane(View view) {
PlaneInfo plane = new PlaneInfo();

EditText edtPlaneType = (EditText) findViewById(R.id.plane_type);
plane.setType(edtPlaneType.getText().toString());

// TODO: Set more properties

dbHandler.addPlane(plane);
}
}

关于id值,您应该返回数据库处理程序插入的结果。这将返回插入记录的行号。然后,您可以从中设置 PlaneInfo 对象的 ID 值。

关于java - 如何在数据库处理程序类中调用添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39840416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com