无法从android中的TableRow的tableLayout的EditText中获取价值

时间:2014-10-24 07:46:45

标签: android

我创建了一个包含多行四列(3 TextView和1 EditText)的tablelayout。我的问题是,当我遍历所有行时,我能够获取textview值,但无法获取EditText的值。 我的代码如下。 XMl代码:

<ScrollView
       android:id="@+id/horizontalView"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/Grid_layout" >

       <TableLayout
           android:id="@+id/header"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_marginLeft="1dp"
           android:layout_marginRight="1dp"
           android:background="@android:color/black" >

           <TableRow>

               <TextView
                   android:layout_margin="1dp"
                   android:layout_weight="2"
                   android:background="@android:color/white"
                   android:gravity="center_horizontal"
                   android:text="Item Name"
                   android:textColor="@android:color/black"
                   android:textSize="10sp" />

               <TextView
                   android:layout_margin="1dp"
                   android:layout_weight="2"
                   android:background="@android:color/white"
                   android:gravity="center_horizontal"
                   android:text="Rack"
                   android:textColor="@android:color/black"
                   android:textSize="10sp" />

               <TextView
                   android:layout_margin="1dp"
                   android:layout_weight="2"
                   android:background="@android:color/white"
                   android:gravity="center_horizontal"
                   android:text="Sale Rate"
                   android:textColor="@android:color/black"
                   android:textSize="10sp" />

               <TextView
                   android:layout_margin="1dp"
                   android:layout_weight="2"
                   android:background="@android:color/white"
                   android:gravity="center_horizontal"
                   android:text="Sys. Stock"
                   android:textColor="@android:color/black"
                   android:textSize="10sp"
                   android:visibility="gone" />

               <EditText
                   android:layout_margin="1dp"
                   android:layout_weight="2"
                   android:background="@android:color/white"
                   android:gravity="center_horizontal"
                   android:text="Phy. Stock"
                   android:textColor="@android:color/black"
                   android:textSize="10sp" />
           </TableRow>
       </TableLayout>
   </ScrollView>

JAVA Code:

public void writeJSON() {

        try {
            ArrayList<EditText> metl = new ArrayList<EditText>();

            for (int i = 1; i < tableLayout.getChildCount(); i++) {
                TableRow mRow = (TableRow) tableLayout.getChildAt(i);

                TextView firstTextView = (TextView) mRow.getChildAt(3);
                String firstText = firstTextView.getText().toString();

                if (mRow.getChildAt(4) instanceof EditText) {
                    EditText secondTextView = (EditText) mRow.getChildAt(4);
                    String secondText = secondTextView.getText().toString();

                }
            }
        } catch (ClassCastException se) {
            Log.e(getClass().getSimpleName(),
                    "Could not create or Open the database");
        }

    }

提前致谢 Gulbaz

1 个答案:

答案 0 :(得分:0)

首先在你的xml文件中为你使用id。如果你在onCreate中定义所有它们然后使用你想要的地方,那么使用起来会更方便。对于考试:EditText yourTextView = (EditText) findViewById(R.id.yourEditText);

EditText从TextView扩展。您可以从中获取文字:yourEditText.getText().toString()