【问题标题】:Unable to switch from Fragment to Activity / Activity to Fragment in Android ProgrammingAndroid 编程中无法从 Fragment 切换到 Activity / Activity 到 Fragment
【发布时间】:2012-11-27 12:58:36
【问题描述】:

目前,我主要使用 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(),他们将提示另一个错误,他们希望切换到 Fragment,而不是活动。

感谢您的帮助!

问候, 安卓学生

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 首先它给出“无法找到明确的活动类,您是否在 AndroidManifest.xml 中声明了此活动?”在我将它添加到 AndroidManifest: 之后,我收到了这个错误 java.lang.RuntimeException: Unable to resume activity (com.mp2012.ieatishootipost/com.mp2012.ieatishootipost.SecondScreenActivity] : java.lang.Illegal Argument Exception: No view found for id 0x7f040003 for fragment SelectionFragment {413408b0 #0 id=0x7f040003}
    【解决方案2】:

    这样做:

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

    【讨论】:

      【解决方案3】:

      就我而言,我也无法从片段中找到类,然后我编写了这段代码并且它可以工作; 公共类 userprofile 扩展 Fragment {

      @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;
      }
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-26
        • 1970-01-01
        相关资源
        最近更新 更多