2014-06-10 112 views
0

當按下b1按鈕時,我的clickFunc方法會顯示錶佈局。按下後,表格顯示正確。第一次onclick工作正常,但我不能刪除表,當我按下第二次調用第二次onclick?第二次按下按鈕時如何取下桌子?當按下按鈕時如何刪除另一個佈局中的佈局

public void clickFunc(){ 
     b1=(Button)findViewById(R.id.b1); 
     b2=(Button) findViewById(R.id.b2); 

     b1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       switch (v.getId()) 
        {case (R.id.b1):{ 
         b1.setVisibility(View.INVISIBLE); 
         b2.setVisibility(View.VISIBLE); 
         view2=getLayoutInflater().inflate(R.layout.yorumm, (ViewGroup) findViewById(R.id.tablely), true); 

        break;} 

        default:{}}}}); 

     b2.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       switch (v.getId()) 
        {case (R.id.b2):{ 
             b2.setVisibility(View.INVISIBLE); 
             b1.setVisibility(View.VISIBLE); 
             break;} 

        default:{}}}}); 

    } 
+0

其中是更改佈局的代碼? –

+0

另外,你有兩個按鈕。不是一個,請編輯你的答案。爲什麼你膨脹的佈局,而不是使用findviewbyid? – ElaGorilaki

+0

你提到了什麼? XML文件或Java代碼?在這段代碼中,view2變量將表添加到佈局中。我只是想實際移除view2。這裏還需要什麼?如果需要xml文件,我可以放在這裏。 – Jaky71

回答

0

解決了! 以下是工作代碼:

 public void clickFunc(){ 
    mvisib =(Button)findViewById(R.id.mvisible); 
    minvisib =(Button) findViewById(R.id.minvisible); 
    final View view=getLayoutInflater().inflate(R.layout.yorumm, (ViewGroup) findViewById(R.id.yorummm), true); 
    editViews(); 
    getComments(); 
    comment(); 
    view.setVisibility(View.GONE); 
    mvisib.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      switch (v.getId()) // v is the button that was clicked 
       {case (R.id.mvisible):{ 
        mvisib.setVisibility(View.INVISIBLE); 
        minvisib.setVisibility(View.VISIBLE); 
        view.setVisibility(View.VISIBLE); 

       break;} 

       default:{}}}}); 

    minvisib.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v1) { 
      switch (v1.getId()) // v is the button that was clicked 
       {case (R.id.minvisible):{ 
            view.setVisibility(View.GONE); 
            minvisib.setVisibility(View.INVISIBLE); 
            mvisib.setVisibility(View.VISIBLE); 
            break;} 

       default:{}}}}); 

} 
0

你可以試試這個 - 得到你要刪除的外部佈局。對於示例 -

LinearLayout ll=(LinearLayout)findViewById(R.id.outer); 

//獲取視圖刪除

TableLayout tb=(TableLayout)findViewById(R.id.table); 

//刪除視圖

ll.removeView(tb); 
+0

感謝您的評論,但它沒有奏效,或者我沒有正確應用。我用GONE以visiblity解決了我的問題。我在上面的編輯部分分享解決方案。 – Jaky71