Java 如何从一个类调用另一个类
在我的Android项目中,有一个MainActivity.javaJava 如何从一个类调用另一个类,java,android,Java,Android,在我的Android项目中,有一个MainActivity.java MainActivity extends FragmentActivity{ onCreate(Bundle savedInstanceState){ BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mB
MainActivity extends FragmentActivity{
onCreate(Bundle savedInstanceState){
BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
}
}
如何在下面的类中使用mBluetoothAdapter对象
public class AvailableDevices extends ListFragment {
// How to call mBluetoothAdapter here
}
感谢在类级别(onCreate()方法之前)声明
BluetoothManager BluetoothManager
,其他类应该是内部类将其作为参数传递给类的构造函数
public class AvailableDevices extends ListFragment {
private BluetoothAdapter bluetoothAdapter;
public AvailableDevices(BluetoothAdapter bluetoothAdapter) {
this.bluetoothAdapter = bluetoothAdapter;
}
}
或者将其声明为静态公共数据成员
public class MainActivity extends FragmentActivity{
public static BluetoothAdapter mBluetoothAdapter;
..
}
然后在另一个类中使用MainActivity.mBluetoothAdapter
或者使AvailableDevices成为内部类,并将适配器声明为数据成员:
public class MainActivity extends FragmentActivity{
private BluetoothAdapter mBluetoothAdapter;
..
class AvailableDevices extends ListFragment {
//can use mBluetoothAdapter
}
}
BluetoothManager BluetoothManager=(BluetoothManager)getActivity().getSystemService(Context.BLUETOOTH\u服务)代码>如果我声明为类成员,那么如何在其他类中使用其他类应该是内部类。或者,您可以使用全局变量/pagage进行管理,这是一种对MainActivity的丑陋且完全不必要的依赖。如果使用静态或单例对象,我至少会将其保存在一个单独的类中。就我个人而言,我使用Dagger进行依赖注入,但我想在很多情况下可能是杀伤力过大。
There are two ways known to me-
Using Static variable:
MainActivity extends FragmentActivity{
public static BluetoothAdapter mBluetoothAdapter;
onCreate(Bundle savedInstanceState){
BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
}
}
public class AvailableDevices extends ListFragment {
// How to call mBluetoothAdapter here
use in this class as MainActivity.mBluetoothAdapter
}
2.Passing mBluetoothAdapter to the constructor of the second class.
MainActivity extends FragmentActivity{
onCreate(Bundle savedInstanceState){
BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
}
}
public class AvailableDevices extends ListFragment {
BluetoothAdapter mBluetoothAdapter=null;
AvailableDevices(BluetoothAdapter mBluetoothAdapter){
this.mBluetoothAdapter=mBluetoothAdapter;
}