单击列表项后,应用程序继续进入主屏幕

时间:2018-10-17 14:27:04

标签: java android

我正在尝试创建一个测验应用程序,通过单击listView项可以选择一个类别。每个类别都有类似0,1,2的代码。对于足球,它是0。在单击足球项目之后,该应用程序继续进入主屏幕,而不是记录我想要的数据。请帮我解决错误。

  

测验类别选择类

    String quizCategory = intent.getStringExtra("QuizCategory");

        //Deciding which database to Open and choose
        switch (quizCategory) {
            case "0":
                Log.i("Category", "Football");
                Football football = new Football(this);
                football.createDatabase();
                football.openDatabase();
                football.getWritableDatabase();
long x=football.getRowCount();
                break;
            default:
                Log.i("Message", "Error");

        }
    }
  

足球课

    public class Football extends SQLiteOpenHelper {
    private static final String Database_path = "/data/data/com.google.quiz/databases/";
    private static final String Database_name = "football.db";
    private static Context context;
    private static final int version = 1;
    public SQLiteDatabase sqlite;

    public Football(Context context) {
        super(context, Database_name, null, version);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

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

    }

    public void createDatabase() {
        createDB();
    }

    private void createDB() {
        boolean dbexist = DBexists();
        if (!dbexist) {
            this.getReadableDatabase();
            copyDBfromResource();
        }
    }

    private void copyDBfromResource() {
        InputStream is;
        OutputStream os;
        String filePath = Database_path + Database_name;
        try {
            is = context.getAssets().open(Database_name);//reading purpose
            os = new FileOutputStream(filePath);//writing purpose
            byte[] buffer = new byte[1024];
            int length;
            while ((length = is.read(buffer)) > 0) {
                os.write(buffer, 0, length);//writing to file
            }
            os.flush();//flush the outputstream
            is.close();//close the inputstream
            os.close();//close the outputstream

        } catch (IOException e) {
            throw new Error("Problem copying database file:");
        }
    }

    public void openDatabase() throws SQLException {
        String myPath = Database_path + Database_name;
        sqlite = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
    }

    private boolean DBexists() {
        SQLiteDatabase db = null;
        try {
            String databasePath = Database_path + Database_name;
            db = SQLiteDatabase.openDatabase(databasePath, null, SQLiteDatabase.OPEN_READWRITE);
            db.setLocale(Locale.getDefault());
            db.setVersion(1);
            db.setLockingEnabled(true);
        } catch (SQLException e) {
            Log.e("Sqlite", "Database not found");
        }
        if (db != null)
            db.close();///close the opened file
        return db != null ? true : false;
    }
public long getRowCount() {
        SQLiteDatabase db = this.getReadableDatabase();
        long x = DatabaseUtils.queryNumEntries(db, "football");
        db.close();
        return x;
    }
}

0 个答案:

没有答案