我不知道我的SQlite数据库有什么问题

时间:2016-04-23 19:58:50

标签: java android sqlite

我的程序运行正常,直到我决定修改我的DBHelper class,每次修改程序后进行一些更改后都会显示此日志:

E/KernelCpuSpeedReader: Failed to read cpu-freq
                                                   java.io.FileNotFoundException: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
                                                       at libcore.io.IoBridge.open(IoBridge.java:452)
                                                       at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                       at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                       at java.io.FileReader.<init>(FileReader.java:66)
                                                       at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
                                                       at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002)
                                                       at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:155)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:148)
                                                       at android.os.HandlerThread.run(HandlerThread.java:61)
                                                       at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                    Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                       at libcore.io.Posix.open(Native Method)
                                                       at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                       at libcore.io.IoBridge.open(IoBridge.java:438)
                                                       at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                       at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                       at java.io.FileReader.<init>(FileReader.java:66) 
                                                       at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49) 
                                                       at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002) 
                                                       at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:155) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:148) 
                                                       at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                       at com.android.server.ServiceThread.run(ServiceThread.java:46) 
04-24 05:36:35.369 1299-1313/? E/KernelUidCpuTimeReader: Failed to read uid_cputime
                                                     java.io.FileNotFoundException: /proc/uid_cputime/show_uid_stat: open failed: ENOENT (No such file or directory)
                                                         at libcore.io.IoBridge.open(IoBridge.java:452)
                                                         at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                         at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                         at java.io.FileReader.<init>(FileReader.java:66)

我不想承担或做出更多改变,这是我项目的最后阶段,请帮助我这里

DB助手:

public class DBHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "MyDBName.db";
    public static final String VALUES_TABLE_NAME = "values";
    public static final String VALUES_COLUMN_ID = "id";
    public static final String VALUES_COLUMN_CONDUCTIVITY = "conductivity";
    public static final String VALUES_COLUMN_MOISTURE = "moisture";
    public static final String VALUES_COLUMN_OXYGEN = "oxygen";
    public static final String VALUES_COLUMN_PH = "ph";

    private HashMap hp;

    public DBHelper(Context context)
    {
        super(context, DATABASE_NAME , null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(
                "create table values " +
                        "(id integer primary key, conductivity text,ph text,oxygen text, moisture text)"
        );
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS values");
        onCreate(db);
    }

    public boolean insertContact  (String conductivity, String ph, String oxygen, String moisture)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("conductivity", conductivity);
        contentValues.put("ph", ph);
        contentValues.put("oxygen", oxygen);
        contentValues.put("moisture", moisture);

        db.insert("values", null, contentValues);
        return true;
    }

    public Cursor getData(int id){
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res =  db.rawQuery( "select * from values where id="+id+"", null );
        return res;
    }

    public int numberOfRows(){
        SQLiteDatabase db = this.getReadableDatabase();
        int numRows = (int) DatabaseUtils.queryNumEntries(db, VALUES_TABLE_NAME);
        return numRows;
    }

    public boolean updateContact (Integer id, String conductivity, String ph, String oxygen, String moisture)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("conductivity", conductivity);
        contentValues.put("phone", ph);
        contentValues.put("oxygen", oxygen);
        contentValues.put("moisture", moisture);

        db.update("values", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
        return true;
    }

    public Integer deleteContact (Integer id)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        return db.delete("values",
                "id = ? ",
                new String[] { Integer.toString(id) });
    }

    public ArrayList<String> getAllCotacts()
    {
        ArrayList<String> array_list = new ArrayList<String>();

        //hp = new HashMap();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res =  db.rawQuery( "select * from values", null );
        res.moveToFirst();

        while(res.isAfterLast() == false){
            array_list.add(res.getString(res.getColumnIndex(VALUES_COLUMN_CONDUCTIVITY)));
            res.moveToNext();
        }
        return array_list;
    }
}

主要活动:

package com.example.carlos.application1;

import android.view.ContextMenu;
import android.view.MenuInflater;
import android.widget.Toast;
        import android.widget.Button;
        import android.content.Context;
        import android.content.Intent;
        import android.support.v7.app.ActionBarActivity;
        import android.os.Bundle;

        import android.view.KeyEvent;
        import android.view.Menu;
        import android.view.MenuItem;
        import android.view.View;
        import android.view.MenuItem;
        import android.widget.AdapterView;
        import android.widget.ArrayAdapter;
        import android.widget.AdapterView.OnItemClickListener;
        import android.widget.ListView;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.DialogInterface;







public class MainActivity extends ActionBarActivity {


    public final static String EXTRA_MESSAGE = "MESSAGE";
    private ListView obj;
    DBHelper mydb;
    int status = 0;
    Button hp_1, HP2, fo, previous, next, MZ, Control, show, home;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button home = (Button) findViewById(R.id.home);
        registerForContextMenu(home);
        mydb = new DBHelper(this);
        ArrayList array_list = mydb.getAllCotacts();
        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, array_list);
        Button hp_1 = (Button) findViewById(R.id.hp_1);

        obj = (ListView) findViewById(R.id.listView1);
        obj.setAdapter(arrayAdapter);
        obj.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                // TODO Auto-generated method stub
                int id_To_Search = arg2 + 1;

                Bundle dataBundle = new Bundle();
                dataBundle.putInt("id", id_To_Search);

                Intent intent = new Intent(getApplicationContext(), DisplayValues.class);

                intent.putExtras(dataBundle);
                startActivity(intent);
            }
        });
        hp_1.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {
                status = 1;
                Bundle bundle = new Bundle();
                bundle.putInt("status", status);

                Intent intent = new Intent(MainActivity.this, DisplayValues.class);
                intent.putExtras(bundle);

                startActivity(intent);/*Intent intent = new Intent(first.this, second.class);

Bundle bundle = new Bundle();
bundle.putInt("index", index);
intent.putExtras(bundle);
startActivity(intent); */


            }
        });


}




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

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        super.onOptionsItemSelected(item);

        switch(item.getItemId())
        {
            case R.id.item1:Bundle dataBundle = new Bundle();
                dataBundle.putInt("id", 0);

                Intent intent = new Intent(getApplicationContext(),DisplayValues.class);
                intent.putExtras(dataBundle);

                startActivity(intent);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    public boolean onKeyDown(int keycode, KeyEvent event) {
        if (keycode == KeyEvent.KEYCODE_BACK) {
            moveTaskToBack(true);
        }
        return super.onKeyDown(keycode, event);
    }
    //dfsdfasdfasdfasd




}

Display Value class,我在那里获取数据库的条目:

package com.example.carlos.application1;


        import android.os.Bundle;
        import android.app.Activity;
        import android.app.AlertDialog;

        import android.content.DialogInterface;
        import android.content.Intent;
        import android.database.Cursor;

        import android.view.Menu;
        import android.view.MenuItem;
        import android.view.View;

        import android.widget.Button;
        import android.widget.TextView;
        import android.widget.Toast;

public class DisplayValues extends Activity {
    int from_Where_I_Am_Coming = 0;
    private DBHelper mydb ;

    TextView conductivity ;
    TextView ph;
    TextView moisture;
    TextView oxygen;

    int id_To_Update = 0;



    public void backButtonHandler() {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                DisplayValues.this);
        // Setting Dialog Title
        alertDialog.setTitle("Leave the page?");
        // Setting Dialog Message
        alertDialog.setMessage("Are you sure you want to leave without saving the Entries?");
        // Setting Icon to Dialog

        // Setting Positive "Yes" Button
        alertDialog.setPositiveButton("YES",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        finish();
                    }
                });
        // Setting Negative "NO" Button
        alertDialog.setNegativeButton("NO",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // Write your code here to invoke NO event
                        dialog.cancel();
                    }
                });
        // Showing Alert Message
        alertDialog.show();
    }
    @Override
    public void onBackPressed() {
        backButtonHandler();
        return;

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display);
        conductivity = (TextView) findViewById(R.id.editTextConductivity);
        oxygen= (TextView) findViewById(R.id.editTextOxygen);
        moisture = (TextView) findViewById(R.id.editTextMoisture);
        ph = (TextView) findViewById(R.id.editTextpH);



        mydb = new DBHelper(this);

        Bundle extras = getIntent().getExtras();
        if(extras !=null)
        {
            int Value = extras.getInt("id");

            if(Value>0){
                //means this is the view part not the add contact part.
                Cursor rs = mydb.getData(Value);
                id_To_Update = Value;
                rs.moveToFirst();

                String condc = rs.getString(rs.getColumnIndex(DBHelper.VALUES_COLUMN_CONDUCTIVITY));
                String mois = rs.getString(rs.getColumnIndex(DBHelper.VALUES_COLUMN_MOISTURE));
                String oxy = rs.getString(rs.getColumnIndex(DBHelper.VALUES_COLUMN_OXYGEN));
                String phe = rs.getString(rs.getColumnIndex(DBHelper.VALUES_COLUMN_PH));

/*    public static final String DATABASE_NAME = "MyDBName.db";
    public static final String VALUES_TABLE_NAME = "values";
    public static final String VALUES_COLUMN_CONDUCTIVITY = "conductivity";
    public static final String VALUES_COLUMN_MOISTURE = "moisture";
    public static final String VALUES_COLUMN_OXYGEN = "oxygen";
    public static final String VALUES_COLUMN_PH = "ph";*/
                if (!rs.isClosed())
                {
                    rs.close();
                }
                Button b = (Button)findViewById(R.id.button1);
                b.setVisibility(View.INVISIBLE);

                conductivity.setText((CharSequence)condc);
                conductivity.setFocusable(false);
                conductivity.setClickable(false);

                moisture.setText((CharSequence)mois);
                moisture.setFocusable(false);
                moisture.setClickable(false);

                ph.setText((CharSequence)phe);
                ph.setFocusable(false);
                ph.setClickable(false);

                oxygen.setText((CharSequence)oxy);
                oxygen.setFocusable(false);
                oxygen.setClickable(false);


            }
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        Bundle extras = getIntent().getExtras();

        if(extras !=null)
        {
            int Value = extras.getInt("id");
            if(Value>0){
                getMenuInflater().inflate(R.menu.display_contact, menu);
            }

            else{
                getMenuInflater().inflate(R.menu.menu_main, menu);
            }
        }
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item)
    {
        super.onOptionsItemSelected(item);
        switch(item.getItemId())
        {
            case R.id.Edit_Contact:
                Button b = (Button)findViewById(R.id.button1);
                b.setVisibility(View.VISIBLE);
                conductivity.setEnabled(true);
                conductivity.setFocusableInTouchMode(true);
                conductivity.setClickable(true);

                ph.setEnabled(true);
                ph.setFocusableInTouchMode(true);
                ph.setClickable(true);

                moisture.setEnabled(true);
                moisture.setFocusableInTouchMode(true);
                moisture.setClickable(true);

                oxygen.setEnabled(true);
                oxygen.setFocusableInTouchMode(true);
                oxygen.setClickable(true);



                return true;
            case R.id.Delete_Contact:

                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage(R.string.deleteContact)
                        .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                mydb.deleteContact(id_To_Update);
                                Toast.makeText(getApplicationContext(), "Deleted Successfully", Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                                startActivity(intent);
                            }
                        })
                        .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                // User cancelled the dialog
                            }
                        });
                AlertDialog d = builder.create();
                d.setTitle("Are you sure");
                d.show();

                return true;
            default:
                return super.onOptionsItemSelected(item);

        }
    }

    public void run(View view)
    {
        Bundle extras = getIntent().getExtras();
        if(extras !=null)
        {
            int Value = extras.getInt("id");
            if(Value>0){
                if(mydb.updateContact(id_To_Update,conductivity.getText().toString(), ph.getText().toString(), oxygen.getText().toString(), moisture.getText().toString())){
                    Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                    startActivity(intent);
                }
                else{
                    Toast.makeText(getApplicationContext(), "not Updated", Toast.LENGTH_SHORT).show();
                }
            }
            else{
                if(mydb.insertContact(conductivity.getText().toString(), ph.getText().toString(), oxygen.getText().toString(), moisture.getText().toString())){
                    Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show();
                }

                else{
                    Toast.makeText(getApplicationContext(), "not done", Toast.LENGTH_SHORT).show();
                }
                Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                startActivity(intent);
            }
        }
    }
}

0 个答案:

没有答案