第一阶段个人冲刺博客第八天

因为要和项目对接,所以今天修改了查询界面,并完成了查询功能的核心代码,下面附上代码。数据库连接出现了问题,准备明天解决。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF">
    <Spinner
        android:id="@+id/province"
        android:layout_width="fill_parent"
        android:layout_height="45px"
        android:layout_marginLeft="75px"
        android:layout_marginRight="20px"
        android:layout_marginTop="7px"
        android:drawSelectorOnTop="true"
        android:layout_alignParentRight="true" />
    <Spinner android:id="@+id/city"
        android:layout_width="fill_parent"
        android:layout_height="45px"
        android:layout_marginLeft="75px"
        android:layout_marginRight="20px"
        android:layout_marginTop="3px"
        android:drawSelectorOnTop="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/province" />
    <Button
        android:id="@+id/SearchFloor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableLayout
            android:id="@+id/BuildingTable"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </TableLayout>

    </ScrollView>

</LinearLayout>

  

package com.example.superman.test;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;

public class SearchEmptyClassroom extends Activity {
    private String[] teaching_building = new String[] {"基教", "第一教学楼","第二教学楼"};
    private String[] default_floor = new String[]{"一楼","二楼","三楼","四楼","五楼","六楼"};
    private String[][] floor = new String[][]{{"一楼","二楼","三楼","四楼","五楼","六楼"},{"一楼","二楼","三楼","四楼"},{"一楼","二楼","三楼","四楼","五楼"}};
    private Spinner sp;
    private Spinner sp2;
    private Context context;
    private String Building;
    private String Floor;
    private Button SearchFloor;
    private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
    private final int MP = ViewGroup.LayoutParams.MATCH_PARENT;
    private TableLayout tableLayout;

    ArrayAdapter<String> adapter ;

    ArrayAdapter<String> adapter2;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.searchemptyclassroom);
        context = this;
        SearchFloor=findViewById(R.id.SearchFloor);
        SearchFloor.setOnClickListener(SearchFloorListener);


        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, teaching_building);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp = findViewById(R.id.province);
        sp.setAdapter(adapter);
        sp.setOnItemSelectedListener(selectListener1);

        adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, default_floor);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp2 = (Spinner) findViewById(R.id.city);
        sp2.setAdapter(adapter2);
        sp2.setOnItemSelectedListener(selectListener2);

    }

    private AdapterView.OnItemSelectedListener selectListener1 = new AdapterView.OnItemSelectedListener(){
        public void onItemSelected(AdapterView parent, View v, int position, long id){
            int pos = sp.getSelectedItemPosition();
            Building=sp.getSelectedItem().toString();
            Toast.makeText(SearchEmptyClassroom.this,"当前选中的教学楼是"+Building,Toast.LENGTH_SHORT).show();
            adapter2 = new ArrayAdapter<String>(context,android.R.layout.simple_spinner_item, floor[pos]);
            sp2.setAdapter(adapter2);
        }
        public void onNothingSelected(AdapterView arg0){
        }

    };
    private AdapterView.OnItemSelectedListener selectListener2=new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Floor=sp2.getSelectedItem().toString();
            Toast.makeText(SearchEmptyClassroom.this,"当前选中的教学楼是"+Floor,Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    };
    private View.OnClickListener SearchFloorListener=new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            GetDATA();
        }
    };
    public void GetDATA()
    {
        // com.test.db 是程序的包名,请根据自己的程序调整
        // /data/data/com.test.db/
        // databases 目录是准备放 SQLite 数据库的地方,也是 Android 程序默认的数据库存储目录
        // 数据库名为 test.db
        String DB_PATH = "/data/data/com.example.superman.test/databases/";
        String DB_NAME = "course.db";

        // 检查 SQLite 数据库文件是否存在
        if ((new File(DB_PATH + DB_NAME)).exists() == false) {
            // 如 SQLite 数据库文件不存在,再检查一下 database 目录是否存在
            File f = new File(DB_PATH);
            // 如 database 目录不存在,新建该目录
            if (!f.exists()) {
                f.mkdir();
            }

            try {
                // 得到 assets 目录下我们实现准备好的 SQLite 数据库作为输入流
                //InputStream is = getBaseContext().getAssets().open(DB_NAME);

                InputStream is = getBaseContext().getResources().openRawResource(R.raw.course);
                // 输出流
                OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);

                // 文件写入
                byte[] buffer = new byte[1024];
                int length;
                while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
                }

                // 关闭文件流
                os.flush();
                os.close();
                is.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        test(DB_PATH,DB_NAME);
    }
    public void test(String DB_PATH,String DB_NAME)
    {
        // 下面测试 /data/data/com.test.db/databases/ 下的数据库是否能正常工作
        SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, null);
        Cursor cursor = database.rawQuery("select * from course where teacher='基教'", null);
        ArrayList<JavaBean> list=new ArrayList<JavaBean>();
        if(cursor.moveToFirst())
        {
            do{
                String name=cursor.getString(cursor.getColumnIndex("name"));
                String teacher=cursor.getString(cursor.getColumnIndex("teacher"));
                double price=cursor.getDouble(cursor.getColumnIndex("price"));
                list.add(new JavaBean(name,teacher,price));
            }while (cursor.moveToNext());
        }
//        if (cursor.getCount() > 0) {
//            cursor.moveToFirst();
//            try {
//                // 解决中文乱码问题
//                byte test[] = cursor.getBlob(0);
//                String strtest = new String(test, "utf-8").trim();
//                // 看输出的信息是否正确
//                Log.d("是否能够查找到本地数据库的信息",strtest);
//                System.out.println(strtest);
//            } catch (UnsupportedEncodingException e) {
//                // TODO Auto-generated catch block
//                e.printStackTrace();
//            }
//        }
        cursor.close();

        ArrayList<String> arrayList=new ArrayList<String>();
        String string=null;
        for(int i=0;i<list.size();i++)
        {
            string=list.get(i).getName()+"-"+list.get(i).getTeacher()+"-"+list.get(i).getPrice();
            arrayList.add(string);
        }
        tableLayout=findViewById(R.id.BuildingTable);

        //清除表格所有行
        tableLayout.removeAllViews();
        //全部列自动填充空白处
        tableLayout.setStretchAllColumns(true);
        for(int i=0;i<arrayList.size();i++)
        {
            TableRow tableRow=new TableRow(this);
            //tv用于显示
            TextView tv=new TextView(this);
            tv.setHeight(300);
            tv.setText(arrayList.get(i).toString());
            tableRow.addView(tv);
            tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1));

        }
    }

}

  

posted @ 2019-04-27 22:09  Tsui98'  阅读(122)  评论(0编辑  收藏  举报