眼前多少难甘事,自古男儿当自强。这篇文章主要讲述Android findViewById空指针[重复]相关的知识,希望能为你提供帮助。
这个问题在这里已有答案:
- What is a NullPointerException, and how do I fix it? 12个答案
<
EditText android:id="@+id/editText" android:text="text" />
<
Button android:id="@+id/button" android:text="button"/>
来自MyActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
this.findViewById(R.id.button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText txt = (EditText) view.findViewById(R.id.editText);
Toast.makeText(view.getContext(),txt.getText(), Toast.LENGTH_SHORT).show();
}
});
...
如果我点击我得到的按钮
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
【Android findViewById空指针[重复]】只是为了测试我试过并成功了
@Override
public void onClick(View view) {
EditText txt = (EditText) view.findViewById(R.id.editText);
Toast.makeText(view.getContext(),txt.getText(),Toast.LENGTH_SHORT).show();
}
}
我不明白为什么按钮没问题但editText为空。
答案你在被点击的
findViewById()
上调用view
。您的按钮没有edittext作为其子项。您应该查询活动视图层次结构:replaceview.findViewById(R.id.editText)
同
findViewById(R.id.editText)
另一答案更改
EditText txt = (EditText) view.findViewById(R.id.editText);
至
EditText txt = (EditText)findViewById(R.id.editText);
您正在查看被单击的视图中的EditText控件 - 这显然是Button。您必须搜索Activity的布局文件。
推荐阅读
- safari app extensions(从swift后台进程向所有选项卡广播消息)
- 从Safari打开相机APP
- Java applet无法在Safari 7下打开文件(Mac OS X 10.9)
- Safari Webapp强制在单击其他链接时打开Safari
- 限制Google API的Android密钥使用
- 如何在没有app包限制的情况下使用map v2 api key()
- 使用Android应用无法在Google云端硬盘上看到PC上传的文件
- 拒绝访问路径'path-name'(Xamarin.Android)
- MVC中的“/.well-known/apple-app-site-association”错误