安卓SQLite和SQLiteDataBase的应用

安卓实验安卓SQLite和SQLiteDataBase的应用

1、 先将数据写入两个news对象中,方便一会插入数据库,这里定义了一个SetNews类,里面静态方法是插入两条数据到news对象中并返回插入之后的对象
在这里插入图片描述

2、重写SQLiteOpenHelper类,以使第一次加载时能创建数据库及表。这里定义了一个MySQLiteHelper类,通过父类的构造方法创建数据库,版本为1;然后重写onCreate方法创建表。
在这里插入图片描述

2、 在ListActivity加载时,向数据库中插入两条数据。
(1)首先定义insert方法,方便以后插入数据。
在这里插入图片描述

(2)插入数据
在这里插入图片描述

3、 插入数据之后读取数据
(1)首先定义一个读取数据库数据的方法
在这里插入图片描述

(2)调用方法
在这里插入图片描述

4、 将查询到的数据显示到ListView列表中
(1)首先在实验四基础上定义一个ListView,定义id属性
在这里插入图片描述

(2)自定义一个布局文件,用于listView加载布局文件,布局如下图
在这里插入图片描述

(3)定义一个Map集合,将查出来的数据依次装进map集合
在这里插入图片描述

(4)定义适配器并setAdapter
在这里插入图片描述

5、 现在就已经可以显示数据库中查询的数据在列表中了
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030192316450.png#pic_cente

6、 设置点击事件,三秒过后颜色变蓝色
(1)获取当前点击列表位置,赋值给num
在这里插入图片描述

(2)当返回列表界面的时候,如果时间超过3秒,就将当前列表的位置写进XML文件中,首先定义将num写入文件的方法
在这里插入图片描述

(3)定义改变颜色的方法,此时需要将写入文件的num读出来,然后通过ListView中的getChildAt方法获取点击过的列表,然后将列表变色,这里用到处理字符串的一些方法
在这里插入图片描述

(4)在返回列表界面的时候会调用onRestart方法
在这里插入图片描述

运行截图:
前面的两个带图片的是我之前创建的两个列表,具体的列表实现是下面没有图片的![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030192357559.png#pic_center![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030192405172.png#pic_center![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030192411829.png#pic_center
代码:
ListActivity代码:

package com.example.Work6;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListActivity extends AppCompatActivity {
   
    //定义初始时间
    public static long time1;
    //定义结束时间
    public static long time2;
    //定义标志(flag),用于区分是点击的哪个标题
    private String flag;
    String num;
    TextView text11 = null;
    TextView text21 = null;
    static String t1;
    static String t2;
    static String t3;
    static String t4;
    //用于存储点击过的列表(list)编号
    final static List<String> listnum = new ArrayList<String>();

    List<Map<String, Object>> listitems = new ArrayList<Map<String, Object>>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
        setContentView(R.layout.activity_list);

        text11 = (TextView) findViewById(R.id.Text1);
        TextView text12 = (TextView) findViewById(R.id.TextView2);
        TextView text13 = (TextView) findViewById(R.id.TextView3);
        text21 = (TextView) findViewById(R.id.TextView21);
        TextView text22 = (TextView) findViewById(R.id.TextView22);
        TextView text23 = (TextView) findViewById(R.id.TextView23);
        //定义一个对象数组,长度为2
        final News[] news0 = new News[2];
        News[] news = new News[2];
        //对象初始化
        news0[0] = new News();
        //通过SetNews类向news[0]和news[1]赋值
        news[0] = SetNews.setNews(news0[0], 0);
        news0[1] = new News();
        news[1] = SetNews.setNews(news0[1], 1);
        //初始化数据库,插入数据
        this.insert(news[0].getTitle(), news[0].getSource(), news[0].getTime
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值