首页 > 解决方案 > 非静态方法无法从静态上下文中引用 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) 中声明

请问有什么建议吗?谢谢

标签: javaandroidclassfindviewbyid

解决方案


代替

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 代码


推荐阅读