我有一个表格布局,其中显示的值如下:
现在我能够实现对行的点击,但我在每行中有三个按钮。
单击开始、已完成和已交付时,我需要更新 mysql 表中的列(状态)。
如果它只是一个表格行,我们可以这样做:
tr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View pos) {
// TODO Auto-generated method stub
System.out.println("Row clicked: " + pos.getId());
}
});
下面是我的表格布局代码:
/*******getting values from mysql db and assigning it to teach row***********/
try{
allarray = new JSONArray(result);
System.out.println("array is " +allarray.length());
JSONObject json_data=null;
for(int j=0;j<allarray.length();j++){
json_data = allarray.getJSONObject(j);
json_data.getString("PreparationLot");
json_data.getString("Prep_MenuItem");
json_data.getString("Prep_Quantity");
json_data.getString("Prep_Order_Number");
json_data.getString("Prep_Notes");
TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
TableRow tr = new TableRow(DashBoard.this);
if(count%2!=0) {
tr.setBackgroundColor(Color.rgb(222, 219, 219));
}else{
tr.setBackgroundColor(Color.rgb(255, 255, 255));
}
tr.setId(20);
tr.setLayoutParams(new LayoutParams());
TextView lotno = new TextView(DashBoard.this);
lotno.setId(200+count);// define id that must be unique
lotno.setText(""+json_data.getString("PreparationLot")); // set the text for the header
lotno.setTextColor(Color.BLACK); // set the color
lotno.setPadding(10, 10, 0, 10); // set the padding (if required)
lotno.setTextSize(18);
tr.addView(lotno);
TextView itemname = new TextView(DashBoard.this);
itemname.setId(200+count);// define id that must be unique
itemname.setText(""+json_data.getString("Prep_MenuItem")); // set the text for the header
itemname.setTextColor(Color.BLACK); // set the color
itemname.setPadding(30, 10, 0, 10); // set the padding (if required)
itemname.setTextSize(18);
tr.addView(itemname);
TextView qty = new TextView(DashBoard.this);
qty.setId(200+count);// define id that must be unique
qty.setText(""+json_data.getString("Prep_Quantity")); // set the text for the header
qty.setTextColor(Color.BLACK); // set the color
qty.setPadding(70, 10, 0, 10); // set the padding (if required)
qty.setTextSize(18);
tr.addView(qty);
TextView order = new TextView(DashBoard.this);
order.setId(200+count);// define id that must be unique
order.setText(""+json_data.getString("Prep_Order_Number")); // set the text for the header
order.setTextColor(Color.BLACK); // set the color
order.setPadding(60, 10, 0, 10); // set the padding (if required)
order.setTextSize(18);
tr.addView(order);
TextView notes = new TextView(DashBoard.this);
notes.setId(200+count);// define id that must be unique
notes.setText(""+json_data.getString("Prep_Notes")); // set the text for the header
notes.setTextColor(Color.BLACK); // set the color
notes.setPadding(60, 10, 0, 10); // set the padding (if required)
notes.setTextSize(18);
tr.addView(notes);
Button start = new Button(DashBoard.this);
start.setText("Start");
start.setMaxWidth(10);
tr.addView(start);
Button complete = new Button(DashBoard.this);
complete.setText("Complete");
complete.setMaxWidth(10);
tr.addView(complete);
Button delivered = new Button(DashBoard.this);
delivered.setText("Delivered");
delivered.setMaxWidth(10);
tr.addView(delivered);
tl.addView(tr, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
count++;
tr.setClickable(true);
tr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View pos) {
// TODO Auto-generated method stub
// Toast.makeText(DashBoard.this, v.getId(), 1000).show();
System.out.println("Row clicked: " + pos.getId());
}
});
}
}
catch(JSONException e1){
Toast.makeText(getBaseContext(), "No data Found" ,Toast.LENGTH_LONG).show();
}
问题: 如果我单击开始、已完成或已交付,我需要更新该行的状态。怎么做?