2012-12-18 126 views
1

在我的Android應用程序中,我動態地創建一個TableRow並在此tableRow中插入一個textView和一個editTextView。Android:刪除動態創建的字段

還有一個提交的是spinner。根據微調器上的選擇,這個TableRow是創建或刪除。

Here他們提到如何從佈局中刪除字段,但問題是我如何獲得視圖。

這裏我的代碼是:

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View v, 
       int pos, long id) { 

      if (pos > 1) { 
       tableRowName = new TableRow(this); 
       tableRowName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

       textViewName = new TextView(this); 
       textViewName.setText("Name*"); 
       textViewName.setTextColor(Color.WHITE); 
       textViewName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 


       editTextPersonName = new EditText(this); 
       editTextPersonName.setHint("Name"); 
       editTextPersonName.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

       tableRowName.addView(textViewName); 
       tableRowName.addView(editTextPersonName); 

       tableLayout.addView(tableRowName, new TableLayout.LayoutParams(
       LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
      } else { 

       tableRowName.removeView((View) v.getParent()); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      Toast.makeText(getApplicationContext(), 
        "onNothingSelected() method is called by Stage Spinner", 
         Toast.LENGTH_LONG).show(); 
     } 
    }); 

這個代碼能夠創造tablerow的,但不能刪除此tablerow的。

回答

1

你可以有更好的觀點已經在佈局XML相加,然後設置能見度GONE或可見動態。

0

設置標籤視圖與v.setTag("my textView"); 那麼當你想找到它使用findViewByTag("my textView");

+0

如何設置標籤以及設置標籤的位置以及何時需要調用findViewByTag。請在簡要說明中解釋。 –

+0

你問你如何找到一個視圖。當你創建它時,用你想要的任何名字爲它設置一個標籤,當你必須再次找到它時,用它的標籤搜索它。然後做任何你需要的東西(將它從父母身上移除/使之不可見) – Rotem