gpt4 book ai didi

android - 在 fragment 中调用 getSystemServices 时未定义?

转载 作者:IT王子 更新时间:2023-10-29 00:00:31 25 4
gpt4 key购买 nike

我希望 TextViewsFragment 中显示传感器读数。当尝试初始化 SensorManager 时,getSystemServicesFragment 中未定义,eclipse 说。为什么以及如何修复它。

fragment

public class FragSensors extends Fragment {

private TextView accXTv, accYTv, accZTv;
private SensorManager sensorManager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.frag_sensors, container, false);
accXTv = (TextView) v.findViewById(R.id.accXValue);
accYTv = (TextView) v.findViewById(R.id.accYValue);
accZTv = (TextView) v.findViewById(R.id.accZValue);
return v;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

}

private final SensorEventListener mSensorListener = new SensorEventListener() {

@Override
public void onSensorChanged(SensorEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub

}
};

}

最佳答案

再调用一个方法:

sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);  

为什么要额外调用一个方法?
提供对系统服务的访问的 getSystemService() 方法来自 ContextActivity 扩展了 Context,而 Fragment 则没有。因此,您首先需要获取对包含 FragmentActivity 的引用,然后神奇地检索您想要的系统服务。

关于android - 在 fragment 中调用 getSystemServices 时未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24427414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com