欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

HDU-安卓程序开发之读写资源文件/SQLite数据库/数据共享

程序员文章站 2022-03-08 15:46:58
前言这次为了做更好看的界面,更新了一下androidstudio到4.1.1,踩了很多坑,最后还是手机热点+*下载安装包,在线更新gradle弄好的,然后新建一个工程又出问题(我和我的室友的问题不一样,这里阐述一下我遇到的问题和解决方案https://blog.csdn.net/cshoney/article/details/90142447)不多说了,开搞!界面读写资源文件SQL数据库的简单操作Java源码读写资源文件package fourvolt69.homework;...

前言

这次为了做更好看的界面,更新了一下android studio到4.1.1
踩了很多坑,最后还是手机热点+*下载安装包,在线更新gradle弄好的,然后新建一个工程又出问题
(我和我的室友的问题不一样,这里阐述一下我遇到的问题和解决方案https://blog.csdn.net/cshoney/article/details/90142447)
不多说了,开搞!

界面

读写资源文件
HDU-安卓程序开发之读写资源文件/SQLite数据库/数据共享
SQL数据库的简单操作
HDU-安卓程序开发之读写资源文件/SQLite数据库/数据共享

Java源码

读写资源文件

package fourvolt69.homework;

import androidx.appcompat.app.AppCompatActivity;

import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.xmlpull.v1.XmlPullParser;

import java.io.IOException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.button);
        Button button2 = (Button)findViewById(R.id.button2);
        Button button3 = (Button)findViewById(R.id.button3);
        TextView textView = (TextView)findViewById(R.id.textView);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Resources resources = getResources();
                InputStream inputStream = resources.openRawResource(R.raw.raw_file);
                try {
                    byte[] reader = new byte[inputStream.available()];
                    while (inputStream.read(reader)!= -1){

                    }
                    textView.setText(new String(reader));
                }catch (IOException e){
                    e.printStackTrace();
                }finally {
                    try {
                        inputStream.close();
                    }catch (IOException e){
                        e.printStackTrace();
                    }
                }
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Resources resources = getResources();
                XmlResourceParser parser=resources.getXml(R.xml.people);
                String msg="";
                try {
                    while(parser.next()!= XmlPullParser.END_DOCUMENT){
                        String people=parser.getName();
                        String name = null;
                        String age = null;
                        String height = null;
                        if((people!=null)&&people.equals("person")){
                            int count = parser.getAttributeCount();
                            for (int i=0;i<count;i++){
                                String attrName=parser.getAttributeName(i);
                                String attrValue=parser.getAttributeValue(i);
                                if ((attrName!=null)&&attrName.equals("name")){
                                    name=attrValue;
                                }else if((attrName!=null)&&attrName.equals("age")){
                                    age=attrValue;
                                }else if((attrName!=null)&&attrName.equals("height")){
                                    height=attrValue;
                                }
                            }
                            if((name!=null)&&(age!=null)&&(height!=null)){
                                msg+="姓名:"+name+",年龄:"+age+",身高:"+height+"\n";
                            }
                        }
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
                textView.setText(msg);
            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView.setText("清除显示");
            }
        });
    }
}

SQL数据库的简单操作

package fourvolt69.homework;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    SQLiteDatabase db_read,db_write;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button insertButton = (Button)findViewById(R.id.button);
        Button updateButton = (Button)findViewById(R.id.button2);
        Button deleteButton = (Button)findViewById(R.id.button3);
        Button queryButton = (Button)findViewById(R.id.button4);
        TextView textView = (TextView)findViewById(R.id.textView);
        SQLiteOpenHelper helper=new SQLiteOpenHelper(MainActivity.this, "my.db",null,1) {
            @Override
            public void onCreate(SQLiteDatabase sqLiteDatabase) {
                sqLiteDatabase.execSQL("create table people(id int, name String)");
            }

            @Override
            public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

            }
        };
        db_read=helper.getReadableDatabase();
        db_write=helper.getWritableDatabase();
        insertButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ContentValues contentValues=new ContentValues();
                contentValues.put("id",3);
                contentValues.put("name","张三");
                db_write.insert("people",null,contentValues);
            }
        });
        updateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ContentValues contentValues=new ContentValues();
                contentValues.put("id",2);
                contentValues.put("name","李二");
                //db_write.update("people",contentValues,"id=?",new String[]{"3"});
                db_write.update("people",contentValues,"id=3",null);
            }
        });
        deleteButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db_write.delete("people","id=2",null);
            }
        });
        queryButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String msg="";
                Cursor cursor=db_read.query("people",new String[]{"id","name"},"id=2",null,null,null,null);
                while (cursor.moveToNext()){
                    String name=cursor.getString(cursor.getColumnIndex("name"));
                    msg+=name;
                }
                textView.setText(msg);
                cursor.close();
            }
        });
    }
}

SQLite的终端命令行操作

  1. 找到platform-tools文件夹 在android studio中打开安卓模拟机,在命令提示符中,cd到platform-tools目录
    在Android studio的设置中可以找到sdk的位置,platform-tools在其下

HDU-安卓程序开发之读写资源文件/SQLite数据库/数据共享

  1. 在命令提示符中进入项目的包的位置 输入adb shell,输入su,进入该虚拟机的Linux系统权限模式
    (ls可以显示当前路径下的文件列表)
    进入data/data/项目文件夹

HDU-安卓程序开发之读写资源文件/SQLite数据库/数据共享

  1. 手工建库操作
    如果你没有databases文件夹,则需要创建一个,mkdir databases
    进入databases文件夹,cd databases
    输入sqlite3 “数据库名字”.db进入数据库交互模式(自己取,下文以friends.db为例)
    输入create table peopleinfo(_id integer primary key autoincrement, name text not null, age integer, height float);
    这里是在friends.db下创建了一张叫peopleinfo的表,数据有 id name age height几种
    输入.table可以查看数据库内全部的表

不想再手工建一次了,图片大家自己脑补吧

  1. 添加、修改、删除、显示
    输入insert into peopleinfo values(null,“Tom”,22,1.78); 这是添加操作
    输入update peopleinfo set name=“Jack” where name=“Tom”; 这是把tom的名字改成jack
    输入delete from peopleinfo where name=“Jack”; 这是把名字叫jack的一组数据删掉
    输入select from * peopleinfo; 这是展示peopleinfo这张表
    如果把 * 号换成属性名如 _id 则只列出 _id栏的值,如果在显示语句之前添加.mode column语句,则以表格的形式列出
    输入.quit退出sqlite3

同上,请自行脑补配图

结语

下周上课应该会讲数据共享的内容,到时候再更新
没什么好说的,给大家劈个叉吧

本文地址:https://blog.csdn.net/fourvolt/article/details/110997874