TableLayout使用TextView和EditText使用android Studio

时间:2016-02-29 06:22:23

标签: android android-layout android-studio android-tablelayout android-database

JSONArray json=new JSONArray(data);
for(int i=0;i<json.length(); i++)
{
    k=json.length();
    rowId =  i;
    JSONObject obj=json.getJSONObject(i);

    pname=obj.getString("ProductName");//database values
    quantity= obj.getString("Quantity");
    id = Integer.toString(k);
    TableRow tr = new TableRow(this);
    tr.setId(i);
    tr.setLayoutParams(new TableRow.LayoutParams(
            TableRow.LayoutParams.WRAP_CONTENT,
            TableRow.LayoutParams.WRAP_CONTENT));


    TextView labelID = new TextView(this);//header is SI:NO
    labelID.setText(id);
    labelID.setPadding(2, 5, 5, 0);
    labelID.setLeft(50);
    labelID.setTextColor(Color.BLACK);
    tr.addView(labelID);

    TextView labelNAME = new TextView(this);//header is PRODUCT NAME
    labelNAME.setText(pname);
    labelNAME.setRight(10);
    labelNAME.setPadding(2, 8, 5, 0);
    labelNAME.setTextColor(Color.BLACK);
    tr.addView(labelNAME);

    labelWEIGHT = new TextView(this);//header is QUANTITY
    //  labelWEIGHT.setId(200 + count);
    labelWEIGHT.setPadding(2, 6, 5, 0);
    labelWEIGHT.setText(quantity.toString());
    labelWEIGHT.setTextColor(Color.BLACK);
    tr.addView(labelWEIGHT);

    labelPRICE = new EditText(this);//header is PRICE...here i need to enter values and save in db
    labelPRICE.setTextColor(Color.BLACK);
    labelPRICE.setPadding(2, 6, 5, 0);
    labelPRICE.setId(Integer.valueOf(rowId));
    ar1[i]=rowId;//row id
    tr.addView(labelPRICE);

    tl.addView(tr, new TableLayout.LayoutParams(
            TableRow.LayoutParams.WRAP_CONTENT,
            TableRow.LayoutParams.WRAP_CONTENT));
    count++;}

基本上,我是android的初学者,因此我需要帮助使用textview和edittext进行tablelayout程序。我无法将用户输入的edittext值存储在数据库中。我试图获取每行的行ID但无法获得该行。任何人都可以帮助我。

这是我的布局。

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以先读取数据,然后将其转储到数据库中。可以通过连续知道编辑文本的位置来轻松完成

例如:

TableRow row = (TableRow)tableLayout.getChildAt(rowPosition);
EditText edit = (EditText) row.getChildAt(0);
String text = edit.getText().toString();

在上面的代码中,我们认为edittext在其行的第0位并且读取了值。

答案 1 :(得分:0)

首先,您可以使用以下方法在EditText中获取用户输入的值。

System.exit()

其次,要将值存储在数据库中,您应该创建一个扩展SQLiteOpenHelper的自定义类。

myEditText.getText().toString() ;

重写此类的onCreate和onUpgrade方法后,创建以下方法来处理insert方法:

public class MyDatabaseHandler extends SQLiteOpenHelper

有关在Android中使用SQlite数据库的完整教程you can study this article.

相关问题