2017-04-25 104 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)); 
     } 
    });