如何使用AppCompatActivity的onCreateView

时间:2015-11-03 07:27:37

标签: android oncreate

背景信息:我目前有一个正在运行的AppCompatActivity。但是现在,一切都在onCreate方法中。我担心它会导致我最近遇到的一些小错误,我的PagerAdapter有java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged!只有当我快速来回切换活动时才会出现错误。我想知道修复这个是否能解决这个问题。

系统要求:最低SDK:15,目标SDK:23(在撰写本文时,或者是最新的)

问题:如何将用户界面初始化代码移到onCreateView方法中?

我熟悉如何实施onCreate的{​​{1}}方法,如下所示:

android.support.v4.app.Fragment

但AppCompatActivity没有类似的选项。这些是我的选择,来自AppCompatActivity文档:

  

查看onCreateView(String name,Context context,AttributeSet attrs)

     

查看onCreateView(查看父级,字符串名称,上下文上下文,   AttributeSet attrs)

这是我的代码:  (除了onCreate和onCreateView之外,我省略了方法)

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    View rootView = inflater.inflate(R.layout.fragment_songdetail, container, false);
    rootView.findViewById(R.id.info).setVisibility(View.INVISIBLE);

    return rootView;
}

1 个答案:

答案 0 :(得分:0)

您必须使用PlaceholderFragment。 试试这个:

public class RestaurantListActivity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) { ... if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment(), "fragmentName").commit(); } } public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {...}