【发布时间】:2018-12-15 16:14:54
【问题描述】:
我的第一个应用程序单独运行良好,但现在我尝试按照教程添加选项卡,但我卡住了。 我一直在搜索,很多用户都有同样的问题,我尝试了这些解决方案,但仍然无法正常工作。
我的应用
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 扩展了方法 findViewById(int) 中声明的 View
请给点建议? 谢谢
【问题讨论】:
-
您需要将
EditText.findViewById替换为(EditText) getView().findViewById。 -
感谢流浪者。您的修复已删除该错误。实际上运行没有错误但是...应用程序崩溃了,我可以在下一个调试中看到: PID: 12271 java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int )' 在空对象引用上。针对同一行:frecuencia = (EditText) getView().findViewById(R.id.frecuencia);
-
使用 v.findViewById 代替 getView()
标签: java android class findviewbyid