我正在尝试获取Accelerometer的原始数据并在TextView上显示它。
我有两个类:MainActivity和SensorActivity。我是Android开发的新手,我故意制作了SensorActivity类,以了解非活动类和活动类的交互方式。为此,我通过搜索了解到我需要传递MainActivity的Context,以便SensorActivity类可以与MainActivity交互。所以,我尽我所能,但我似乎陷入困境。
在初始化函数中,我尝试访问MainActivity的TextView似乎不起作用。我甚至无法做出正确的语法。代码片段如下所示。如果我能得到任何帮助,我将非常感激。
在MainActivity.java中
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SensorActivity sensorActivity = new SensorActivity(this);
sensorActivity.initialize();
}
}
在SensorActivity.java中
public class SensorActivity implements SensorEventListener{
Context mainActivityContext;
private SensorManager mySensorManager = (SensorManager) mainActivityContext.getSystemService(Context.SENSOR_SERVICE);
public SensorActivity (Context context){
this.mainActivityContext = context;
}
...
protected void initialize(){
...
TextView tv = (TextView) findViewById(R.id.default_text_view);
...
}
}
答案 0 :(得分:3)
使用Activity Context从非Activity类访问View:
protected void initialize(Activity activity){
...
TextView tv = (TextView)activity.findViewById(R.id.default_text_view);
...
}
因为findViewById
是Activity类而不是Context
答案 1 :(得分:2)
使用活动参考代替上下文它将起作用。