【问题标题】:How to implement Fragment and AppCompatActivity in a single activity in android如何在android中的单个活动中实现Fragment和AppCompatActivity
【发布时间】:2017-10-07 20:36:43
【问题描述】:

我已经在我的活动调用 Performance_Medicine 的 tablayout 中实现了滑动

public class Performance_Medicine extends Fragment{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){

       //Returning the layout file after inflating
       //Change R.layout.tab1 in you classes
       return inflater.inflate(R.layout.performance_medicine, container, false);
    }
}

现在,我正在尝试在同一活动中实现 cardview。但是出现错误 like below image

【问题讨论】:

    标签: android android-fragments android-cardview


    【解决方案1】:

    您收到错误是因为您尝试传递扩展 FragmentPerformance_Medicine 实例。您需要通过this.getActivity()this.getContext() 传递上下文。如果您可以通过单例或this.getActivity().getApplicationContext() 传递应用程序上下文,那么您可能会在内存方面做得更好。

    【讨论】:

    • 无法访问的语句albumList = new ArrayList();
    • 那是因为您在实例化列表之前调用了return v。所以函数在你到达那个语句之前就结束了。
    • 很高兴听到这个消息!
    【解决方案2】:

    请记住,Fragment 有自己的生命周期,但它在其宿主 Activity 的上下文中运行,这意味着您不能使用 'this' 来获取 Context,而需要使用 getActivity()。此外,正如 sam_c 所说,在您的 onCreate() 方法中,最后一行代码必须是“return ...”,因为此方法的返回类型为“View”,如果您调用 return 语句,该方法将不会在此之后执行任何操作。希望这有助于澄清。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      相关资源
      最近更新 更多