2017-04-25 103 views
0

修改全局變量在我的片段中的代碼的結構如下:按鈕的onClick方法在片段

public class FragmentScanQR extends Fragment { 
    ... 
    private Button qrFromCameraBtn; 
    private View rootView; 
    ... 

public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.qrsource, container, false); 
     qrFromCameraBtn = (Button)rootView.findViewById(R.id.qrViaCameraBtn); 

     qrFromCameraBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       rootView = inflater.inflate(R.layout.fragmenttab1, container, false); 
      } 
     }); 

     return rootView; 
    } 

片段的onCreateView方法返回類型android.view.View的值。 按鈕的onClick方法修改相同的View變量。在輸出中,當我點擊底部時,佈局不會更改爲R.layout.fragmenttab1(我希望實現),但保持不變。我怎樣才能做到這一點?

+1

剛剛走出curiosity..why的添加以下代碼做想做的事是什麼?您可以通過替換片段 – AbhayBohra

+0

來實現此目標如果我的答案在下面幫助了,請接受它,謝謝。 –

回答

2

如果我明白你需要什麼,你想用新的替換你的第一個片段。你能做到這一點,像這樣:

//Where Article fragment is your new fragment. 
ArticleFragment newFragment = new ArticleFragment(); 
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

// Replace whatever is in the fragment_container view with this fragment, 
// and add the transaction to the back stack so the user can navigate back 
transaction.replace(R.id.fragment_container, newFragment); 
transaction.addToBackStack(null); 

// Commit the transaction 
transaction.commit(); 

來源:https://developer.android.com/training/basics/fragments/fragment-ui.html

0

如果你想只需更換佈局,這個鏈接可以幫助你。 Android - How to dynamically change fragment layout。 剛上按一下按鈕方法

qrFromCameraBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      RelativeLayout rl = (RelativeLayout) findViewById(R.id.about); 
rl.removeAllViews(); 
rl.addView(View.inflate(myView.getContext(), R.layout.about, null)); 
     } 
    });