如何在android中获取tablelayout第一列的值

时间:2014-06-10 09:19:54

标签: android tablelayout

我正在创建一个Android应用程序,其中有一个复选框,我想获得tablelayout第一列的值,其中的复选框被按下。我也有一个按钮,我希望按下按钮,然后我将使用JSON将其发送回服务器。

表格的所有字段都是动态生成的,不会存储在任何地方。我使用JSON从服务器获取表的值,并且所有值都是字符串格式。

我无法思考如何做到这一点,也无法找到任何教程。如果您有任何代码,请给我任何教程链接。

Here is the link到整个代码。它很长,但是按下按钮的代码就是它自己的代码的开头。

我只想要产品代码的价值。你可以在截图中看到它。

enter image description here

1 个答案:

答案 0 :(得分:0)

你可以这样做 -

创建一个ArrayList

ArrayList<String> productList = new ArrayList<String>

您知道列Products下的文字视图是哪些。因此,当您使用your_tv.setText("sdfsd")之类的名称在该列下设置textview时。

将此字符串或值添加到ArrayList,例如productList.add("sdfsd");。这里只添加product列的值。

通过这样做,您可以轻松获得产品的价值。

XML文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
     >

     <TableLayout 
                    android:stretchColumns="0,1"
                    android:id="@+id/main_table" android:layout_weight="1" android:layout_height="wrap_content" android:layout_width="match_parent">
            </TableLayout>


     <Button android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Show"
         android:id="@+id/btn_show"/>

</LinearLayout>

JAVA文件

public class MainActivity extends Activity {

    TableLayout tl;
    ArrayList<String> productList = new ArrayList<String>();
    String[] name = { "Product", "A", "B", "C", "D", "E" };
    String[] wt = { "Rs:", "1", "2", "3", "4", "5" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tl = (TableLayout) findViewById(R.id.main_table);
        Button b = (Button) findViewById(R.id.btn_show);

        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                for (int i = 0 ; i < productList.size(); i++)
                    Toast.makeText(getApplicationContext(), productList.get(i).toString(), Toast.LENGTH_SHORT).show();
            }
        });

        for (int i = 0; i < 6; i++) {

            TableRow tr_head = new TableRow(this);
            tr_head.setId(10);
            tr_head.setBackgroundColor(Color.GRAY);
            tr_head.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                    LayoutParams.WRAP_CONTENT));

            TextView label_name = new TextView(this);
            label_name.setId(20);
            label_name.setText(name[i]);
            productList.add(name[i]);  // here adding the product name to arraylist
            label_name.setTag(name[i]);
            label_name.setTextColor(Color.WHITE);
            label_name.setPadding(5, 5, 5, 5);
            tr_head.addView(label_name);// add the column to the table row here

            TextView label_weight_kg = new TextView(this);
            label_weight_kg.setId(21);// define id that must be unique
            label_weight_kg.setText(wt[i]);
            label_weight_kg.setTag(wt[i]);// set the text for the header
            label_weight_kg.setTextColor(Color.WHITE); // set the color
            label_weight_kg.setPadding(5, 5, 5, 5); // set the padding (if
                                                    // required)
            tr_head.addView(label_weight_kg); // add the column to the table row
                                                // here

            tl.addView(tr_head, new TableLayout.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

我添加了代码,以便您可以获得一些想法。请相应修改。快乐的编码:)