如何将我的Android数据库保存在SD卡中

时间:2014-04-08 17:31:28

标签: android database android-sqlite

我试图将我的SQLite数据库保存在SD卡中,但它不能与我合作,我真的不知道问题是什么。我还读到我可以通过在AndroidManifest.xml中添加权限将数据库保存在SD卡中。无论如何,这是我的代码,我期待着你的回复:)。抱歉我的英语不好。

package com.example.barcodereader;

import android.os.Bundle;

import android.app.Activity;
import android.view.Menu;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    private Button scanBtn, addBtn;
    private TextView formatTxt, contentTxt;
    private EditText productName, productDescription, isHalal;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // connecting views with our private variables
        scanBtn = (Button) findViewById(R.id.scan_button);
        addBtn = (Button) findViewById(R.id.add_record);
        formatTxt = (TextView) findViewById(R.id.scan_format);
        contentTxt = (TextView) findViewById(R.id.scan_content);
        productName = (EditText) findViewById(R.id.product_name);
        productDescription = (EditText) findViewById(R.id.product_descreption);
        isHalal = (EditText) findViewById(R.id.halal);

        scanBtn.setOnClickListener(this);
        addBtn.setOnClickListener(this);
    }

    public void onClick(View v) {
        // respond to clicks
        if (v.getId() == R.id.scan_button) {
            // scan
            IntentIntegrator scanIntegrator = new IntentIntegrator(this);
            scanIntegrator.initiateScan();
        }

        if (v.getId() == R.id.add_record) {

            if (contentTxt.getText().toString().length() != 0) {
                // create the database
                DatabaseHandler dbHandler = new DatabaseHandler(this, null,
                        null, 1);
                // create new product object and add it to database
                Product newProduct = new Product(productName.getText()
                        .toString(), productDescription.getText().toString(),
                        contentTxt.getText().toString(), formatTxt.getText()
                                .toString(), isHalal.getText().toString());
                dbHandler.addProduct(newProduct);

                formatTxt.setText("");
                contentTxt.setText("");
                productName.setText("");
                productDescription.setText("");
                isHalal.setText("");
            } else {
                Toast.makeText(MainActivity.this, "Please scan a product",
                        Toast.LENGTH_SHORT).show();
            }
        }
    }

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        // retrieve scan result
        IntentResult scanningResult = IntentIntegrator.parseActivityResult(
                requestCode, resultCode, intent);
        if (scanningResult != null) {
            // we have a result
            String scanContent = scanningResult.getContents();
            String scanFormat = scanningResult.getFormatName();
            formatTxt.setText("FORMAT: " + scanFormat);
            contentTxt.setText("CONTENT: " + scanContent);
        } else {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "No scan data received!", Toast.LENGTH_SHORT);
            toast.show();
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;

    }

}

0 个答案:

没有答案