在Android编程中无法从Fragment切换到Activity / Activity到Fragment

时间:2012-12-10 05:21:58

标签: android android-activity hyperlink switch-statement fragment

目前,我主要使用Fragments连接到Facebook。

但是,对于其他代码,我使用的是普通的活动(没有碎片)。

我现在的问题是我希望有一个按钮可以从我的"主页"到片段,从片段回到我的主页"

我无法这样做。

我尝试使用相同的代码在此之间切换活动,但它不起作用。

有没有办法将正常活动链接到碎片和反之亦然?或者他们只能相互链接?

这是我的代码:

    public class SplashFragment extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle     savedInstanceState) {
    View view = inflater.inflate(R.layout.splash, container, false);
//   return view;

    Button btnNextScreen = (Button) view.findViewById(R.id.btnNextScreen);      
//    Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);

    //Listening to button event
    btnNextScreen.setOnClickListener(new View.OnClickListener() {

      public void onClick(View arg0) {
          //Starting a new Intent
          Intent nextScreen = new Intent(**getApplicationContext()**, SecondScreenActivity.class);
            startActivity(nextScreen);

}
});

 return view;   
}
}

我在getApplicationContext()时遇到错误。

如果我将其更改为getActivity(),则会提示他们希望切换到片段而不是活动的其他错误。

感谢您的帮助!

此致 AndroidStudent

3 个答案:

答案 0 :(得分:1)

如果你想从片段导航到活动,请使用此getActivity()。

Intent nextScreen = new Intent(getActivity(), SecondScreenActivity.class);
startActivity(nextScreen);

答案 1 :(得分:0)

这样做:

Intent i = new Intent(getActivity(), activityname.class); 
i.putExtra("key", value);           
getActivity().startActivity(i);

答案 2 :(得分:0)

就我而言,我也无法从片段中找到该类,然后编写此代码,它可以工作; 公共类用户配置文件扩展了片段{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.fragment_userprofile, container, false);

    final ImageView iconoptions = view.findViewById(R.id.iconoptions);

    iconoptions.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          startActivity(new Intent(getActivity(),com.example.miniproject. options.class));
        }
    });

    return view;
}

}