java - 非静态方法无法从静态上下文中引用 findViewById(int)
问题描述
我的第一个应用程序单独运行良好,但现在我尝试按照教程添加选项卡,但我卡住了。我一直在搜索,许多用户都有同样的问题,我已经尝试了这些解决方案,但仍然无法正常工作。
我的应用
package es.ea1ddo.antenacubica;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frecuencia = findViewById(R.id.frecuencia);
cal3el = (Button) findViewById(R.id.calcular3);
现在这是我试图复制以前的应用程序的地方
package es.ea1ddo.calculadoraantenascubicas;
public class TabFragment2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v= inflater.inflate(R.layout.tab_fragment_2, container, false);
frecuencia = EditText.findViewById(R.id.frecuencia);
cal3el = (Button) getView().findViewById(R.id.calcular3);
我一直在四处寻找,尝试了很多例子和不同的方式,但我被困住了。你可以看到我添加了getView()
. 在每个之前,findViewById
但我仍然遇到同样的错误:
非静态方法 findViewById(int) 不能从 T 是类型变量的静态上下文中引用:T extends View 在方法 findViewById(int) 中声明
请问有什么建议吗?谢谢
解决方案
代替
frecuencia = EditText.findViewById(R.id.frecuencia);
cal3el = (Button) getView().findViewById(R.id.calcular3);
和
recuencia = (EditText) v.findViewById(R.id.frecuencia);
cal3el = (Button) v.findViewById(R.id.calcular3);
如果不起作用,请在您的问题中添加完整的 xml 代码
推荐阅读
- python-3.x - 写入 STATIC_ROOT 时,Django sqlite“数据库已锁定”
- c# - 粒子系统仅在 GetButton() 的开始和结束时播放
- jquery - 找到完全匹配文本的 CSS 选择器
- c# - Winforms - C# 任务栏进度指示器 (Windows 10)
- android - 如何检查协程是否使用相同的上下文?
- node.js - 如何解决 res.status 不是函数?
- jenkins - 向存在的 html 文件发送电子邮件通知
- branch.io - 与 Facebook 广告合作伙伴在 Branch.io 上连接订阅和开始试用
- mysql - 计算相对于特定值的 zscore
- tensorflow - 无法添加第四个卷积层