0

アクションバータブがあり、2つのタブがあり、最初のタブにはボタンを含むレイアウトのフラグメントがあります。ボタンをクリックすると、現在のフラグメントのレイアウトが切り替わります。所属..そして、このようなものへの方法はありますか?..私はアイデアを持っていますが、他のタブでnullexceptionを生成します.とにかく、ボタンがクリックされたときにビューを切り替えたい最初のタブに集中しましょう.私のサンプルコード:

主な活動:

ActionBar acBar = getActionBar();
acBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = acBar.newTab().setText("Patient");
ActionBar.Tab tab2 = acBar.newTab().setText("Contact");

Fragment frag_a = new PatientFragment();
Fragment frag_b = new ContactFragment();

tab1.setTabListener(new MyTabListener(this, frag_a));
tab2.setTabListener(new MyTabListener(this, frag_b));

acBar.addTab(tab1);
acBar.addTab(tab2);

タブリスナー:

class MyTabListener implements ActionBar.TabListener{
    private Fragment gFrag;
    private Activity gAct;

        public MyTabListener(Activity act, Fragment frag){
            this.gFrag = frag;
            this.gAct = act;
        }


        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            Toast.makeText(gAct, "Reselected!", Toast.LENGTH_LONG).show();
        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            ft.replace(R.id.fragment_container, gFrag);
        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            ft.remove(gFrag);

        }

}

フラグメント A:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.frag_a, container, false);
    ;
    Button next = (Button) view.findViewById(R.id.prompt);

    next.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Toast.makeText(getActivity(), "Next!",Toast.LENGTH_LONG).show();

        }
    });

    return view;
}

主に、フラグメント内のビューを切り替えたいだけです。他に知っている方法があれば、tnx を共有してください。

4

1 に答える 1