【问题标题】:How to extend AppCompactActivity and Fragment together?如何一起扩展 AppCompatActivity 和 Fragment?
【发布时间】:2017-11-22 02:08:50
【问题描述】:

到目前为止,我有两个类,第一个类是我想放在第二个类中的内容,它与片段一起使用。

第一堂课是这样的-

public class MainActivity extends AppCompatActivity implements BluetoothAdapter.LeScanCallback {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab2_fragment);
        
}

第二类是这样的

public class Tab2Fragment extends Fragment {
    private static final String TAG = "Tab2Fragment";

   

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

我想结合这些,但我需要这样的东西

public class Tab2Fragment extends Fragment, AppCompatActivity implements BluetoothAdapter.LeScanCallback {
}

我到处寻找,但得出的结论是,按照我想要的方式执行此操作的唯一方法是使用界面。但是我会遇到类似的问题,在一个类中实现两个接口! :( 请帮助我已经尝试了 4 天。提前致谢。

【问题讨论】:

  • “我想合并这些”——为什么?由于无法做到,如果您多解释一下您认为您将获得的东西,也许我们可以为您提供解决潜在问题的其他建议。 “但我会遇到类似的问题,在一个类中实现两个接口”——一个类可以根据需要实现任意数量的接口。我已经编写了实现 4-5 个接口的类。
  • 这个堆栈线程可能会有所帮助
    click here

标签: java android class interface extend


【解决方案1】:

首先,Fragment 和 Activity 是两个非常不同的东西。

其次,您实际上不能从 Java 中的 2 个不同的类进行扩展。这是不可能的。

第三,您在 Activity 中为 Fragment 中的视图添加相同的视图。这可能不是你想要的。

您应该看看如何在 Activity 中实现 Fragments。您需要访问 FragmentManager(每个 Activity 都有一个),然后将 Fragment 添加到该 FragmentManager 中。

试着用谷歌搜索一下,周围有很多指南。

【讨论】:

    【解决方案2】:

    你不能在 Java 中做到这一点。因为 Java 不支持多重继承。

    但是对于接口,您可以做到。您可以在单个类中实现多个接口,在那里您可以实现所有这些接口中定义的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 2022-07-28
      • 2020-12-11
      • 2018-07-21
      • 2016-06-25
      • 2022-08-21
      • 1970-01-01
      相关资源
      最近更新 更多