gpt4 book ai didi

java - 从非 Activity 类访问 Activity 组件

转载 作者:行者123 更新时间:2023-12-01 17:16:39 25 4
gpt4 key购买 nike

我正在尝试获取加速度计的原始数据并将其显示在 TextView 上。

我有两个类:MainActivity 和 SensorActivity。我是 Android 开发新手,我故意创建 SensorActivity 类只是为了了解非 Activity 类和 Activity 类如何交互。为此,我通过搜索了解到,我需要传递 MainActivity 的 Context,以便 SensorActivity 类可以与 MainActivity 进行交互。所以,我尽我所能,但我似乎陷入困境。

在初始化函数中,我访问 MainActivity 的 TextView 的努力似乎不起作用。我什至无法制定正确的语法。下面提供了代码 fragment 。如果我能得到任何帮助,我将不胜感激。

在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);
...
}
}

最佳答案

使用 Activity Context 从非 Activity 类访问 View ,如下所示:

protected void initialize(Activity activity){
...
TextView tv = (TextView)activity.findViewById(R.id.default_text_view);
...
}

因为findViewById是来自Activity类的方法而不是Context

关于java - 从非 Activity 类访问 Activity 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620532/

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