【问题标题】:Can fragment extend an abstract class?片段可以扩展抽象类吗?
【发布时间】:2016-02-26 12:58:25
【问题描述】:

抽象类扩展了 android.support.v4.app.Fragment,所以 MyFragment 可以作为片段做一些事情。但是 MyFragment 在扩展抽象类时不能转换为 Fragment。 片段如何扩展抽象类?

MainActivity.java

public class MainActivity extends AppCompatActivity{
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        FragmentManager fm = getSupportFragmentManager();
        int id = item.getItemId();
        switch (id){
        case (R.id.nav_bin):
            fm.beginTransaction().replace(R.id.fragment_content, new MyFragment()).commit();
            break;
         ...
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

MyFragment.java

public class MyFragment extends BaseActivity implements ...{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View baseView = inflater.inflate(R.layout.fragment_content, container, false);
        return baseView;
    }

}

BaseActivity.java

public abstract class BaseActivity extends Fragment implements ...{
}

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    ...BaseActivity extends Fragment...

    首先,请不要使用这种命名约定——这非常令人困惑。请改用BaseFragmentBaseActivity 暗示它从 Activity 类扩展而来。

    其次,您的问题可能源于混合的 android.app.Fragment 导入和 android.support.v4.app.Fragment 导入。确保您的 BaseFragment 类正在导入 android.support.v4.app.Fragment 而不是 android.app.Fragment

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2016-11-10
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多