Android:查询从数据库中检索数据并填充编辑文本

时间:2013-07-26 07:32:00

标签: android sqlite android-xml

我在数据库中有一个employee表,并且有一个用户将员工详细信息插入表

的活动

现在我还要更新特定的员工,因此,我使用了相同的xml和不同的按钮,将可见性分别设置为可见,并分别显示更新和插入按钮

现在,当用户点击更新时,我想显示相同的xml,但是Edittexts已经填充了员工详细信息,然后可以编辑

我该怎么做?

这是我的xml

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/background"
android:gravity="top" >



<TextView
    android:id="@+id/TV"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="20sp"
    android:gravity="center_horizontal"
    android:text="Employee Entry details"
    android:textColor="#000000"
    android:textSize="35sp"
    android:textStyle="italic" />

<LinearLayout
    android:id="@+id/mainll"
    android:layout_width="fill_parent"
    android:layout_height="650sp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/TV"
    android:layout_marginTop="10dp"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50sp">

        <TextView
            android:id="@+id/enametext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee Name:"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp" />

        <EditText
            android:id="@+id/enameedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content" >

            <requestFocus />
            </EditText>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/edesignationtext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee Designation:"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/edesignationedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content" >


        </EditText>




    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/enumbertext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee Phone Number:"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/enumberedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content"
             >


        </EditText>

    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/edobtext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee D.O.B :"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/edobedit"
            android:layout_width="250sp"
            android:layout_height="wrap_content"
            />

        <Button
            android:id="@+id/dateOfBirth"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date"
            android:textColor="#000000"
            android:textSize="30sp"
            android:background="#ffffff" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/ebasicpaytext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee Basic Pay :"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/ebasicpayedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content"
            />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/epftext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee PF deduction :"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/epfedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content"
            />
    </TableRow>


    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20sp">

        <TextView
            android:id="@+id/eotherdeductionstext"
            android:layout_width="260sp"
            android:layout_height="wrap_content"
            android:text="Employee Other Deductions :"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <EditText
            android:id="@+id/eotherdeductionedit"
            android:layout_width="340sp"
            android:layout_height="wrap_content"
            />
    </TableRow>
</LinearLayout>

<TableRow
    android:id="@+id/inserttablerow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/mainll"
    android:layout_marginTop="61dp"
    android:visibility="visible" >

    <Button
        android:id="@+id/savebutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="70sp"
        android:background="#ffffff"
        android:text="Save"
        android:textColor="#000000"
        android:textSize="30sp" />

    <Button
        android:id="@+id/cancelbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100sp"
        android:background="#ffffff"
        android:text="Cancel"
        android:textColor="#000000"
        android:textSize="30sp" />

    <Button
        android:id="@+id/addanotheremployeebutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:layout_marginLeft="100sp"
        android:text="Add new"
        android:textColor="#000000"
        android:textSize="30sp" />

</TableRow>

<TableRow
    android:id="@+id/updatetablerow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/mainll"
    android:layout_marginTop="61dp"
    android:visibility="gone" >

    <Button
        android:id="@+id/updatesavebutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="160sp"
        android:background="#ffffff"
        android:text="Update"
        android:textColor="#000000"
        android:textSize="30sp" />

    <Button
        android:id="@+id/updatecancelbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100sp"
        android:background="#ffffff"
        android:text="Cancel"
        android:textColor="#000000"
        android:textSize="30sp" />

</TableRow>

和datahelper类的插入和更新方法

//inserting into employeetable

     public void insertDataIntoEmployee(String name_STR, String designation_STR, String phonenumber_STR, String age_STR, 
             String basicpay_STR, String pfdeduction_STR, String otherdeductions_STR) {
           System.out.println(" insertData start ");
           cv = new ContentValues();

           cv.put("ename", name_STR);
           cv.put("edesignation", designation_STR);
           cv.put("ephonenumber", phonenumber_STR);
           cv.put("eage", age_STR);
           cv.put("ebasic", basicpay_STR);
           cv.put("epf", pfdeduction_STR);
           cv.put("eotherdeductions", otherdeductions_STR);
               this.db.insert(EMPLOYEE_TABLE_NAME, null, cv);
               System.out.println(" insertData end ");
     }

     // updating the table

     public void updateDataIntoEmployee(long rowId ,String name_STR, String designation_STR, String phonenumber_STR, String age_STR, 
             String basicpay_STR, String pfdeduction_STR, String otherdeductions_STR) {
           System.out.println(" updateData start ");
           cv = new ContentValues();

           cv.put("ename", name_STR);
           cv.put("edesignation", designation_STR);
           cv.put("ephonenumber", phonenumber_STR);
           cv.put("eage", age_STR);
           cv.put("ebasic", basicpay_STR);
           cv.put("epf", pfdeduction_STR);
           cv.put("eotherdeductions", otherdeductions_STR);
               this.db.update(EMPLOYEE_TABLE_NAME, cv, EMPLOYEE_ID + "=" + rowId, null);
               System.out.println(" updateData end ");
     }

和我在课堂上我必须显示填充的edittexts的方法在这里

public void onCreate(Bundle savedState) {
EditText editText = (EditText) findViewById(R.id.my_edittext);
String value = // Query your 'last value'.
editText.setText(value);
}

现在可以查询的是必须在字符串值中传递哪些可以检索的查询,我是否应该每次为每个编辑文本重写此代码? 无论如何都要避免冗余吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试类似

的内容
String[] mProjection = {/* All The Columns which you want to retrieve */};
Cursor cursor = this.db.query(EMPLOYEE_TABLE_NAME, mProjection, EMPLOYEE_NAME + "=?", new String[] { name_STR }, null, null, null);

这将一次性返回所有列名称,您可以使用任何您想要的。无需一次又一次地查询数据库。

获取光标后,

if (cursor != null && cursor.moveToNext()) {
    // you can store all the returned columns in a custom class here and return that class object
}