从数据库处理程序获取数据

时间:2015-06-21 13:51:51

标签: java android eclipse sqlite import

我是Android开发的新手。 我正在尝试使用3个editexts获取第一个Activity(Activity2.java),这些editexts需要以(_ID,STATE,FARMER_NAME)和&它包含三个按钮,一个用于插入记录,一个用于删除,&一个有助于在我的MainActivity的下一个活动中查看数据库记录的一个(实际上我已经以MAinActivity.java的名义制作了我的第二个活动页面)。我希望这些数据库记录以列表格式显示,每行的自定义布局。 但每当我点击“查看记录”按钮,我的应用程序崩溃。 我也有意图。

以下是代码:

for Actvity2.java

import android.app.Activity;
import android.app.Notification;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
 * Created by NILESH on 6/20/2015.
 */
public class Activity2 extends Activity implements View.OnClickListener {
    EditText e1,e2,e3,e4;
    Button b1, b2, b3;
    DatabaseHandler db = new DatabaseHandler(this);

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        e1=(EditText)findViewById(R.id.edittext1);
        e2=(EditText)findViewById(R.id.edittext2);
        e3=(EditText)findViewById(R.id.edittext4);
        e4=(EditText)findViewById(R.id.edittext3);
        b1 = (Button) findViewById(R.id.button1);
        b2 = (Button) findViewById(R.id.button2);
        b3 = (Button) findViewById(R.id.button3);
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        b3.setOnClickListener(this);
    }

    public void onClick(View v) {
        if (v.equals(b1)) {

            Toast.makeText(this, "button1 selected",    
Toast.LENGTH_SHORT).show();
            db.insertRecord(e1.getText().toString(),e2.getText().toString(),e3.getText().toString());
        }
        if (v.equals(b2)) {
            Toast.makeText(this,"button2 selected",Toast.LENGTH_SHORT).show();
            db.deleteRecord(e4.getText().toString());
        }
        if (v.equals(b3)) {
            Toast.makeText(this,"button3 selected",Toast.LENGTH_SHORT).show();
            Intent i=new Intent(this,MainActivity.class);
            int count = db.getcount();
           String s = String.valueOf(count);
           i.putExtra("a",s);
            startActivity(i);

        }
    }
}

对于MainActivity.java

import android.app.ListActivity;
import java.util.ArrayList;
import java.util.ArrayList;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;


public class MainActivity extends ListActivity {
 DatabaseHandler db=new DatabaseHandler(this);

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
     super.onCreate(savedInstanceState);
        Toast.makeText(this,getIntent().getExtras().getString("a"),Toast.LENGTH_SHORT).show();
       setContentView(R.layout.activity_main);
        int h=db.getcount();
        Toast.makeText(this,"kkk"+h,Toast.LENGTH_SHORT).show();
        Cursor b=db.getAllData();
        String s="";
        startManagingCursor(b);
        if(b.moveToFirst()) {
            s = s + b.getString(2);
        }
            Toast.makeText(this,"kkk"+s,Toast.LENGTH_SHORT).show();
        String[] from=new String[]{"_ID","State","Farmer_name"};
        int[] to=new int[]{R.id.t1,R.id.t2,R.id.t3};
        SimpleCursorAdapter sca=new SimpleCursorAdapter(this,R.layout.rows,b,from,to);
        setListAdapter(sca);
    }

    @Override
    protected void onListItemClick(ListView l,View v,int position,long id)
    {
        int item=position;
        Toast.makeText(this,item+" selected",Toast.LENGTH_SHORT).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.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

DatabaseHandler.java

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;



public class DatabaseHandler extends SQLiteOpenHelper {

    public DatabaseHandler(Context context) {

        super(context, "DbTest2", null, 1);
    }


    @Override
    public void onCreate (SQLiteDatabase db){
        String sql = "create table list(_ID TEXT,State TEXT,Farmer_Name TEXT)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){
        String sql = "DROP TABLE list";
        db.execSQL(sql);
        onCreate(db);
    }

    public void insertRecord(String var1, String var2,String var5) {
        SQLiteDatabase db = this.getWritableDatabase();
        String sql = "insert into list values('"+var1+"','"+var2+"','"+var5+"')";
        db.execSQL(sql);
    }

    public void deleteRecord(String var3) {
       // String  var4="'"+var3+"'";
        SQLiteDatabase db = this.getWritableDatabase();
        //use var4 to store var3 as var4='var3' by concatenation
        String sql = "delete from list where _ID='"+var3+"'";
        db.execSQL(sql);
    }


    public int getcount() {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor c = db.rawQuery("SELECT * FROM " + "list", null);
        int x = c.getCount();
        c.close();
        return x;
    }

    public Cursor getAllData(){
        SQLiteDatabase db=this.getReadableDatabase();
       Cursor c=db.rawQuery("SELECT * FROM " + "list", null);
        return c;
    }
}

0 个答案:

没有答案