第一次做Andriod移动开发 的一些总结

1.先说说SQlite 吧,如何实现同一应用的多个活动界面访问数据库的问题

再谈一谈自己遇到的一些问题吧:

2.SQlite数据库我没有弄可视化的那一部分,相当于盲“点”。

如何保证知道自己成功的创建了数据库呢?   Log.i()//写在数据库的创建函数中即可

相同的方法保证了自己知道是否打开了已有的数据库,这个得说到两个回调函数了。onCreate()以及onOpen()

第一个在创建数据库的时候调用,第二个在打开数据库的时候调用。然后利用调试的Log信息即可判断。

3.在设置布局界面的时候,由于设置成了另一个Layout,导致了editText 空对象的问题,一开始我以为是参数为空个,后来调试,发现传入的参数是有值的,然后我就从头看了几遍代码,才发现是布局设置错误了,这个在多个布局名称相似时,以后一定要注意。

下面是第一个问题的解决方案,没有需要就不用看了。

package com.example.lingcheng.e_here;


import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

注册页面创建了数据库:

加红的部分,保证了访问同一个数据库

只需要关注标记部分即可



import java.lang.*;




public class Register_activity extends AppCompatActivity {
    private EditText editText_number;
    private EditText editText_password;
    private EditText edit_name;
    private  EditText edit_class;
    private RadioButton radioButton_student;
    private RadioButton radioButton_teacher;
    private String job;
    private Context mContext;
    private MySQLiteHelper helper;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_activity);
        mContext = getApplicationContext();
        helper=DBManage.getIntance(mContext);


        editText_password=findViewById(R.id.editText_password);
        editText_number=findViewById(R.id.editText_number);
        edit_name=findViewById(R.id.edit_name);
        edit_class=findViewById(R.id.edit_class);


        radioButton_student=findViewById(R.id.radio_stu) ;
        radioButton_teacher=findViewById(R.id.radio_teacher) ;
        RadioButton.OnClickListener radioButtonListener = new RadioButton.OnClickListener(){
            @Override
            public void onClick(View v) {
                switch(v.getId()){
                    case R.id.radio_stu:
                       job="student";
                        break;
                    case R.id.radio_teacher:
                        job="teacher";
                        break;
                }
            }};
        radioButton_student.setOnClickListener(radioButtonListener);
        radioButton_teacher.setOnClickListener(radioButtonListener);






        Button button_confirm=findViewById(R.id.button_confirm) ;
        Button button_cancel=findViewById(R.id.button_cancle) ;
        Button.OnClickListener buttonListener = new Button.OnClickListener(){
            @Override
            public void onClick(View v) {
                switch(v.getId()){
                    case R.id.button_confirm:
                        User user=new User();
                        user.number_id=Integer.parseInt(editText_number.getText().toString());
                        user.name=edit_name.getText().toString();
                        user.password=editText_password.getText().toString();
                        user.classes=edit_class.getText().toString();
                        user.job=job;
                        SQLiteDatabase db=helper.getWritableDatabase();
                        DBManage.Insert(db,user,mContext);
                        db.close();
                        break;
                    case R.id.button_cancle:
                        Intent intent=new Intent(Register_activity.this,Loading.class);
                        // intent.setAction("android.intent.action.MAIN");
                        startActivity(intent);
                        break;
                }
            }};


        button_confirm.setOnClickListener(buttonListener);
        button_cancel.setOnClickListener(buttonListener);
    }

}

数据库的另一个使用界面

package com.example.lingcheng.e_here;


import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class UI_stu extends AppCompatActivity {
    private EditText editText_number;
    private EditText editText_name;
    private EditText editText_class;


    private  MySQLiteHelper helper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_stu);
        final Button button01 = (Button)findViewById(R.id.Button01);
        final Button button02 = (Button)findViewById(R.id.Button02);
        button01.setText("学生签到!");
        button02.setText("取消签到!");
        final EditText editText_number = (EditText)findViewById(R.id.EditText_number);
        final EditText editText_name = (EditText)findViewById(R.id.EditText_name);
        final EditText editText_class = (EditText)findViewById(R.id.EditText_class);
        Intent intent=getIntent();
        String account=intent.getStringExtra("account");






        helper=DBManage.getIntance(getApplicationContext());
        SQLiteDatabase db=helper.getReadableDatabase();
        Cursor cursor=db.rawQuery("select _name,_class from Teacher_stu where _id= ?",new String[]{String.valueOf(account)});
        cursor.moveToFirst();
        if (cursor != null && cursor.getCount() > 0) {
            Log.i("tips","Find it");
        }
        String msg=cursor.getString(cursor.getColumnIndex("_name"));
        if(msg!=null){
            Log.i("not null","not null");
        editText_name.setText(msg);
        }
        String msg1=cursor.getString(cursor.getColumnIndex("_class"));
        if(msg1!=null){
            Log.i("not null","not null");
        editText_class.setText(msg1);
        }
        if(account!=null){
            Log.i("not null","not null");
           editText_number.setText(account);
        }
        db.close();


        button01.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(UI_stu.this,"签到成功",Toast.LENGTH_SHORT).show();
            }
        });
        button02.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(UI_stu.this,"签到失败",Toast.LENGTH_SHORT).show();
            }
        });


    }

}






猜你喜欢

转载自blog.csdn.net/zenglingcheng/article/details/80041745