[실험] 이동 단말 애플리케이션 개발 2 SQLite는 데이터베이스를 이용하여

면책 조항 :이 문서는 블로거 원본입니다. 재현 블로거 권한에 문의하시기 바랍니다. 블로거 공공 마이크로 채널 번호] [아는학과와 캠퍼스를하는. https://blog.csdn.net/cxh_1231/article/details/84454617

참고 : 사용 SQLite 데이터베이스에 대한 기사 :이 컴퓨터 단말기 응용 프로그램 개발 클래스, 실험 2의 뭐라구 학교입니다.

소스 다운로드 : https://download.csdn.net/download/cxh_1231/10805430

용지 Zhongjue이 연습은 필수적입니다 알고 온다.


첫째, 실험의 목적 :

  1. 안드로이드 마스터 고급 컨트롤 및 이벤트 처리 방법의 사용;
  2. 친숙한 안드로이드 데이터 저장 방식은 사용 SQLite는 마스터합니다.

둘째, 실험 내용 :

  1. 새로운 안드로이드 응용 프로그램을 만듭니다 사용자 이름, 비밀번호, 전화, 메일과 성별의 입력 인터페이스 정보를 설계;
  2. 인터페이스 추가하기 "저장"을 "삭제"및 "빈"및 기타 버튼과 드롭 다운 사용자 이름의 목록을 "추가";
  3. SQLite는 데이터베이스 연결, 쿼리 및 CRUD 및 기타 작업의 생성을 달성;
  4. 원시 데이터 초기화 기능은 데이터베이스를 달성하기 위해;
  5. 기록을 달성하기 위해 기능을 추가하는 버튼 응답 코드 "추가"를 쓰기;
  6. 응답 대상 드롭 다운 목록에서 코드를 작성할 때, 응용 프로그램, 자동으로 데이터베이스에서로드 된 모든 사용자 이름의 드롭 다운 목록을 시작하고 첫 번째 레코드 정보가 인터페이스에 표시됩니다. 사용자가 다른 사용자 이름을 선택하면, 사용자 인터페이스 정보를 표시한다.
  7. "저장"을 "삭제", "취소"버튼 응답 코드를 작성합니다. 각각의 변경을 완료하고 현재 레코드를 저장, 현재 레코드, 명확한 인터페이스 기능을 삭제합니다.

셋째, 실험 지침 :

  • , 안드로이드 응용 프로그램을 만들기도 렌더링에 도시 된 바와 같이, 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이 연습은 필수적입니다 알고 온다.

추천

출처blog.csdn.net/cxh_1231/article/details/84454617