2012-06-04 24 views
0
final TableRow tr1_vin_details = new TableRow(this); 
inspStatus = new ImageView(this); 
tr1_vin_details.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
//TableRow tr = (TableRow) v.getParent(); 
TableRow lTableRow = ((TableRow) v); 
TextView lTextView = (TextView) lTableRow.getChildAt(1); 
vinNum = lTextView.getText().toString(); 
theTag = (Integer) v.getTag(); 
Intent intent = new Intent(DeliveryInspectionActivity.this, ExceptionsActivity.class); 
//intent.putExtra("Row ID of a particular selected row:", rowId); 
intent.putExtra("Tag value", theTag); 
startActivityForResult(intent, 0); 

} });如何將來自onActivityResult的數據添加到onCreate方法中tablelayout的特定選定行?

現在我想發送行id(theTag)值到nextActivity,並在onActivityResult我想添加一些來自NextActivity的數據。代碼是

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
if (resultCode == RESULT_OK) { 
    id_row = data.getIntExtra("id of row:", 0); 
    String str = String.valueOf(id_row); 
    Toast.makeText(this, "You have selected row: " + " " + str, Toast.LENGTH_SHORT).show(); 
    int num_exceptions = data.getIntExtra("Number Of Exceptions", 0); 
    TextView area_tv = new TextView(this); 
    TextView type_tv = new TextView(this); 
    TextView severity_tv = new TextView(this); 
    if(num_exceptions > 0){ 
     inspStatus.setBackgroundResource(R.drawable.ir_vin_red_check); 
     tv_area.setText(Html.fromHtml("<br> Area: ")); 
     tv_area.setTextColor(Color.BLACK); 
     tv_type.setText(Html.fromHtml("<br> Type: ")); 
     tv_type.setTextColor(Color.BLACK); 
     tv_severity.setText(Html.fromHtml("<br> Severity: ")); 
     tv_severity.setTextColor(Color.BLACK); 
     openedRow1.removeAllViews(); 
     openedRow1.addView(tv_area); 
     openedRow1.addView(tv_type); 
     openedRow1.addView(tv_severity); 

     openedRow2.removeAllViews(); 
     openedRow2.addView(area_tv); 
     openedRow2.addView(type_tv); 
     openedRow2.addView(severity_tv); 

     tl_skiddetails.addView(openedRow1, id_row); 
     tl_skiddetails.addView(openedRow2, id_row); 
    } 
} 

}

現在我的問題是我想openedRow1 & openedRow2行添加到餐桌布局FirstActivity的onCreate方法時firstactivity切換按鈕的的onclick

我應該在哪裏添加這些行,在onActivityResult或onCreate方法...?當我在OnActivityResult中添加這個時,應用程序被強制關閉。

06-04 12:40:58.216:E/AndroidRuntime(1642):java.lang.RuntimeException:傳遞結果失敗ResultInfo {who = null,request = 0,result = -1,data = Intent { extras)}}活動{net.mss.palsapp/net.mss.palsapp.DeliveryInspectionActivity}:java.lang.IllegalStateException:指定的子項已經有父項。您必須先調用子對象的父對象的removeView()。

請幫我...我從一個長這個問題苦苦掙扎......

+0

你需要的代碼要知道你需要在參數.addview中傳遞什麼,你在做什麼不能理解。 – Rakshi

+0

我將openedRow1&openedRow2行傳遞給表格佈局。 openedRow1&openedRow2包含來自另一活動的數據... – Geetha

+0

和id_row你傳遞給它的數據,它需要傳遞的佈局參數,佈局參數像layout_width和layout_height – Rakshi

回答

1

如果妳想要錶行動態添加表的佈局遵循以下

// Get the TableLayout 
    TableLayout tl = (TableLayout) findViewById(R.id.maintable); 

// Create a TableRow and give it an ID 
     TableRow tr = new TableRow(this); 
     tr.setId("unique id for table row"); 
     tr.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 


     // Create a TextView to house the name of the province 
     TextView labelTV = new TextView(this); 
     labelTV.setId("unique id"); 
     labelTV.setText("your text"); 
     labelTV.setTextColor(Color.BLACK); 
     labelTV.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     tr.addView(labelTV); 


     // Add the TableRow to the TableLayout 
     tl.addView(tr, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
相關問題