将行列提取到编辑文本中,在textview中输入id

时间:2011-12-09 12:12:06

标签: android sqlite fetch

我有一个带有数字编辑文本的页面,我想用原始列填充这些,行id等于textview值...这是我到目前为止在编辑文本页面中的内容。

public class CBCreate extends Activity   {

EditText EditRecipe,EditRecipe2,EditRecipe3;
Button Rname;
CBDataBaseHelper entry;
TextView RowIDText;
Cursor c;
String name;
String category;
String description;
//final String SQL_STATEMENT = "SELECT Recipe_Name, Recipe_Category, Recipe_Description FROM RecipeData WHERE _id = " + RowIDText ;


public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.create); // sets the content view to main

    EditRecipe = (EditText) findViewById(R.id.editText1);
    EditRecipe2 = (EditText) findViewById(R.id.editText2);
    EditRecipe3 = (EditText) findViewById(R.id.editText3);
    RowIDText = (TextView) findViewById(R.id.RowID);
    Rname = (Button) findViewById(R.id.RecipeName);
    String RowID;
try{
    Bundle extras = getIntent().getExtras(); 

    if (extras != null) {
        RowID = extras.getString("SELECTED");
        RowIDText.setText(RowID);
    }

    if (RowIDText != null){
        entry = new CBDataBaseHelper(this);
        String s = RowIDText.getText().toString();
        int ID = Integer.parseInt(s);
        entry.open();
        Cursor cursor = entry.fetchRow(ID);

        if (cursor.moveToFirst()){ // data?
           name = cursor.getString(cursor.getColumnIndex(CBDataBaseHelper.KEY_NAME));
    }
        entry.close();
        EditRecipe.setText(name);
        EditRecipe2.setText(category);
        EditRecipe3.setText(description);

    }
    }catch (Exception e){
        String error = e.toString();
        Dialog d = new Dialog(this);
        d.setTitle("darn");
        TextView tv = new TextView(this);
        tv.setText(name);
        d.setContentView(tv);
        d.show();
    }
}

public void doIt(View view) {

            String Name = EditRecipe.getText().toString();
            String description = EditRecipe.getText().toString();
            String category = EditRecipe.getText().toString();
            entry = new CBDataBaseHelper(CBCreate.this);
            entry.open();
            entry.createEntry(Name, description, category);
            entry.close();
            EditRecipe.setText("");
            EditRecipe2.setText("");
            EditRecipe3.setText("");

}

public void goBack(View view){

    Intent myIntent = new Intent(this, CBFilter.class);
    startActivity(myIntent);


}

}

然后这就是我在数据库助手类中所拥有的...我想我想调用这个方法?

    public Cursor fetchRow(long rowId) throws SQLException {
    Cursor mCursor = mydatabase.query(true, DATABASE_TABLE, new String[] { KEY_ROWID,
            KEY_CATEGORY, KEY_DESCRIPTION }, KEY_ROWID + "="
            + rowId, null, null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

1 个答案:

答案 0 :(得分:0)

我会使用mydatabase.rawquery(QUERY)而不是游标查询方法。我认为SQL开发人员更容易。无论如何,一旦你在光标中有了你的值,你就可以做到这一点

EditRecipe.setText(cursor.getString(0));
EditRecipe2.setText(cursor.getString(1));

其中0表示返回表中的第一列。您可以将该代码放在mCursor.moveToFirst();

之后