我正在创建一个Android应用程序,其中有一个复选框,我想获得tablelayout第一列的值,其中的复选框被按下。我也有一个按钮,我希望按下按钮,然后我将使用JSON将其发送回服务器。
表格的所有字段都是动态生成的,不会存储在任何地方。我使用JSON从服务器获取表的值,并且所有值都是字符串格式。
我无法思考如何做到这一点,也无法找到任何教程。如果您有任何代码,请给我任何教程链接。
Here is the link到整个代码。它很长,但是按下按钮的代码就是它自己的代码的开头。
我只想要产品代码的价值。你可以在截图中看到它。
答案 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;
}
}
我添加了代码,以便您可以获得一些想法。请相应修改。快乐的编码:)