면책 조항 :이 문서는 블로거 원본입니다. 재현 블로거 권한에 문의하시기 바랍니다. 블로거 공공 마이크로 채널 번호] [아는학과와 캠퍼스를하는. https://blog.csdn.net/cxh_1231/article/details/84454617
참고 : 사용 SQLite 데이터베이스에 대한 기사 :이 컴퓨터 단말기 응용 프로그램 개발 클래스, 실험 2의 뭐라구 학교입니다.
소스 다운로드 : https://download.csdn.net/download/cxh_1231/10805430
용지 Zhongjue이 연습은 필수적입니다 알고 온다.
첫째, 실험의 목적 :
- 안드로이드 마스터 고급 컨트롤 및 이벤트 처리 방법의 사용;
- 친숙한 안드로이드 데이터 저장 방식은 사용 SQLite는 마스터합니다.
둘째, 실험 내용 :
- 새로운 안드로이드 응용 프로그램을 만듭니다 사용자 이름, 비밀번호, 전화, 메일과 성별의 입력 인터페이스 정보를 설계;
- 인터페이스 추가하기 "저장"을 "삭제"및 "빈"및 기타 버튼과 드롭 다운 사용자 이름의 목록을 "추가";
- SQLite는 데이터베이스 연결, 쿼리 및 CRUD 및 기타 작업의 생성을 달성;
- 원시 데이터 초기화 기능은 데이터베이스를 달성하기 위해;
- 기록을 달성하기 위해 기능을 추가하는 버튼 응답 코드 "추가"를 쓰기;
- 응답 대상 드롭 다운 목록에서 코드를 작성할 때, 응용 프로그램, 자동으로 데이터베이스에서로드 된 모든 사용자 이름의 드롭 다운 목록을 시작하고 첫 번째 레코드 정보가 인터페이스에 표시됩니다. 사용자가 다른 사용자 이름을 선택하면, 사용자 인터페이스 정보를 표시한다.
- "저장"을 "삭제", "취소"버튼 응답 코드를 작성합니다. 각각의 변경을 완료하고 현재 레코드를 저장, 현재 레코드, 명확한 인터페이스 기능을 삭제합니다.
셋째, 실험 지침 :
- , 안드로이드 응용 프로그램을 만들기도 렌더링에 도시 된 바와 같이, GUI 인터페이스를 디자인합니다.
- SQLite는 데이터베이스가 내장 된 관계형 데이터베이스 가벼운 안드로이드 시스템이다. SQLite 데이터베이스뿐만 아니라 표준 SQL 구문을 지원하고 ACID 트랜잭션 데이터베이스를 따릅니다. 다음의 SQLiteDatabase SQLite 데이터베이스를 사용하여 동작의 기본적인 방법은 다음과 같다.
- (1) 데이터베이스를 작성, 기본 단계는 다음과 같습니다
난 SQLiteOpenHelper에서 상속하는 클래스를 정의한다.
방법은 SQLiteOpenHelper 클래스 클래스를 겹쳐에서 OnCreate () 메소드 onUpgrade ().
클래스의 인스턴스를 생성, 데이터베이스를 작성 getReadableDatabase () 또는 getWriteableDatabase () 메서드를 호출합니다.
예를 들면 :
public class BaseDBHelper extends SQLiteOpenHelper {
private static final String CREATE_T_MEMO = “create table t_memo(”
+“id integer primary key autoincrement,”
+“memo_time text,”
+“memo_content text)”;
private Context context;
public BaseDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_T_MEMO); //创建数据库表t_memo
}
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}
...
BaseDBHelper dbHelper = new BaseDBHelper(MainActivity.this, "firstdemo_db", null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase(); //创建数据库firstdemo_db
...
- (2) 데이터를 데이터베이스에 추가 SQLiteDataBse 클래스 () 메소드를 사용하여 삽입한다. 예를 들면 :
ContentValues values = new ContentValues();
values.put("memo_time", time);
values.put("memo_content", content);
long f = db.insert("t_memo", null, values); //向表中插入数据
- (3) 데이터베이스의 데이터 테이블을 조회하는 쿼리의 SQLiteDatabase 클래스 () 메소드를 사용하여. 예를 들면 :
Cursor cursor = db.query("t_memo", null, null, null, null, null, null); //从数据库表t_memo中读取所有数据
- 베이스 테이블의 데이터에 대해 (4) 업데이트의 SQLiteDatabase 클래스 () 메소드는 갱신된다. 예를 들면 :
ContentValues values = new ContentValues();
values.put("memo_time", tv_time.getText().toString());
values.put("memo_content", et_content.getText().toString());
int is_succeeed = db.update("t_memo", values, "id = ? ", new String[]{memo_id}); //修改指定编号的记录
- (5) 데이터베이스 테이블의 데이터에 대한 삭제의 SQLiteDatabase 클래스 () 메소드를 사용하는 것은 삭제됩니다. 예를 들면 :
int is_succeed = db.delete("t_memo", "id = ? ", new String[]{memo_id}); //从表t_memo中删除指定编号的记录
- 라디오 버튼 RadioButton 컨트롤은도 2를 이용하여 구현 하였다. RadioButton 컨트롤은 여러 응용 프로그램 중 하나에서 사용할 수 있습니다. 당신이 옵션 버튼 중 하나를 선택하려면 다른 옵션 버튼을 선택 해제로 설정되어, 당신은 <을 radioGroup> 태그에 <의 RadioButton> 태그에 필요합니다.
- 사용자의 선택에 응답 할 수 있습니다 (회 전자 제어 구현) 드롭 다운 목록을 만들려면, 옵션은 제어 스피너에서 이벤트를 수신해야합니다. 다음과 같이 키 코드는 다음과 같습니다
spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
... //事件处理代码
}
@Override
public void onNothingSelected(AdapterView<?> parent){ }
});
녹화 넷째, 과정 :
1, activity_main.xml 레이아웃 :
2, DBHelper.java 파일 코드 :
package com.cxhit.test2;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String CREATE_T_USER = "create table t_user("
+"id integer primary key autoincrement,"
+"user_Name text,"
+"user_Password text,"
+"user_Tel text,"
+"user_Email text,"
+"user_Sex int)";
private Context context;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_T_USER);//创建数据表
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
3, MainActivity.java 파일 코드 :
package com.cxhit.test2;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.*;
//调用
import android.widget.Toast;
import android.widget.Spinner;
import android.content.ContentValues;
import java.util.ArrayList;
import java.util.List;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
public static SQLiteDatabase database;//数据库对象
private List<User> userList; //用户列表
//
private EditText getName,getPassword,getTel,getEmail;
private int getSex;
//
private Button addButton,saveButton,deleteButton,emptyButton;
private RadioGroup sexRadio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database=getDatabase();//获得数据库对象
//四个按钮的对象
addButton=(Button) findViewById(R.id.buttonAdd);
saveButton = (Button) findViewById(R.id.buttonSave);
deleteButton = (Button) findViewById(R.id.buttonDelete);
emptyButton = (Button) findViewById(R.id.buttonEmpty);
//性别选项
sexRadio = (RadioGroup) findViewById(R.id.radioSex);
Spinner spinner = (Spinner) findViewById(R.id.spinnerNowUser);
final List<String> datas = new ArrayList<>();
datas.add("zhangsan");
datas.add("lisi");
datas.add("wangwu");
MyAdapter adapter = new MyAdapter(this);
spinner.setAdapter(adapter);
adapter.setDatas(datas);
}
//为“添加”按钮点击点击事件
public void buttonAdd_Click(View view){
getName = (EditText) findViewById(R.id.editTextUsername);
getPassword = (EditText) findViewById(R.id.editTextPassword);
getTel = (EditText) findViewById(R.id.editTextTel);
getEmail = (EditText) findViewById(R.id.editTextEmail);
getSex = sexRadio.getCheckedRadioButtonId();
if(TextUtils.isEmpty(getName.getText().toString())){
Toast.makeText(MainActivity.this,"请输入用户名!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getPassword.getText().toString())){
Toast.makeText(MainActivity.this,"请输入密码!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getTel.getText().toString())){
Toast.makeText(MainActivity.this,"请输入手机号!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getEmail.getText().toString())){
Toast.makeText(MainActivity.this,"请输入邮箱号码!",Toast.LENGTH_LONG).show();
}
else if(getSex<0){
Toast.makeText(MainActivity.this,"请选择性别!",Toast.LENGTH_LONG).show();
}else{
//将数据保存到数据库
ContentValues values = new ContentValues();
values.put("user_Name",getName.getText().toString());
values.put("user_Password",getPassword.getText().toString());
values.put("user_Tel",getTel.getText().toString());
values.put("user_Email",getEmail.getText().toString());
values.put("user_Sex",getSex);
long flag = database.insert("t_user", null, values);
if (flag > 0) {
Toast.makeText(MainActivity.this, "添加成功!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "添加失败!", Toast.LENGTH_LONG).show();
}
}
}
public void buttonSave_Click(View view){
getName = (EditText) findViewById(R.id.editTextUsername);
getPassword = (EditText) findViewById(R.id.editTextPassword);
getTel = (EditText) findViewById(R.id.editTextTel);
getEmail = (EditText) findViewById(R.id.editTextEmail);
getSex = sexRadio.getCheckedRadioButtonId();
if(TextUtils.isEmpty(getName.getText().toString())){
Toast.makeText(MainActivity.this,"请输入用户名!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getPassword.getText().toString())){
Toast.makeText(MainActivity.this,"请输入密码!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getTel.getText().toString())){
Toast.makeText(MainActivity.this,"请输入手机号!",Toast.LENGTH_LONG).show();
}
else if(TextUtils.isEmpty(getEmail.getText().toString())){
Toast.makeText(MainActivity.this,"请输入邮箱号码!",Toast.LENGTH_LONG).show();
}
else if(getSex<0){
Toast.makeText(MainActivity.this,"请选择性别!",Toast.LENGTH_LONG).show();
}else{
//将数据保存到数据库
ContentValues values = new ContentValues();
values.put("user_Name",getName.getText().toString());
values.put("user_Password",getPassword.getText().toString());
values.put("user_Tel",getTel.getText().toString());
values.put("user_Email",getEmail.getText().toString());
values.put("user_Sex",getSex);
int is_succeeed=database.update("t_user",values,"user_Name=?",new String[]{getName.getText().toString()});
if (is_succeeed > 0) {//如果要保存的用户在数据库中
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_LONG).show();
} else {//如果不在数据库中,改为添加操作
long flag = database.insert("t_user", null, values);
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_LONG).show();}
}
}
public void buttonDelete_Click(View view){
getName = (EditText) findViewById(R.id.editTextUsername);
int is_succeed=database.delete("t_user","user_Name=?",new String[]{getName.getText().toString()});
if(is_succeed>0)
Toast.makeText(MainActivity.this,"删除成功",Toast.LENGTH_LONG).show();
}
public void buttonEmpty_Click(View view){
getName = (EditText) findViewById(R.id.editTextUsername);
getPassword = (EditText) findViewById(R.id.editTextPassword);
getTel = (EditText) findViewById(R.id.editTextTel);
getEmail = (EditText) findViewById(R.id.editTextEmail);
getSex = sexRadio.getCheckedRadioButtonId();
getName.setText("");
getPassword.setText("");
getEmail.setText("");
getTel.setText("");
Toast.makeText(MainActivity.this,"清空成功",Toast.LENGTH_LONG).show();
}
//获得数据库对象
private SQLiteDatabase getDatabase() {
DBHelper dbHelper = new DBHelper(MainActivity.this, "demo_db", null, 1);
return dbHelper.getReadableDatabase();
}
}
6.3.5 운영 스크린 샷 :
VI 결론 :
"추가"버튼을, 기본 기능을 달성 shix "저장"버튼, 삭제 버튼은 구현되지 않습니다. 참조 용으로 만! ! !
용지 Zhongjue이 연습은 필수적입니다 알고 온다.