android:如何在单击按钮上更改片段内的视图

时间:2012-08-21 14:41:45

标签: android

我有一个操作栏标签,它有两个标签,第一个标签有一个片段,其中包含一个按钮的布局,我想要做的就是当我点击按钮时它会有点切换当前片段的布局那个按钮属于哪里..并且有没有办法解决这个问题?...我有一个想法,但它在另一个标签上产生了一个nullexception,无论如何我只想集中在第一个标签,我想在点击一个按钮时切换视图,这是我的示例代码:

MainActivity:

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);

TabListener:

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!

1 个答案:

答案 0 :(得分:0)

我建议您切换整个Fragment。此API专为此类目的而设计。