当前位置:编程学习 > wap >>

关于对话框内 无法获得EditText中的字符串

   builder.setPositiveButton("登陆", new DialogInte易做图ce.OnClickListener() {

@Override
public void onClick(DialogInte易做图ce dialog, int which) {
// TODO Auto-generated method stub
Log.d("0", "0");
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);

Log.d("1.1", "1.1");
String str1 = et1.getEditableText().toString();
Log.d("1", "1");
String str2 = et2.getText().toString();
Log.d("2", "2");
File f1 = new File("d:/Android/",str1);
Log.d("3", "3");
.....}

error:java.lang.NullPointerException

只能查得到前面的2个log,请问问题在哪 --------------------编程问答-------------------- 如果你的Activity类为SampleActivity
请把代码
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);

改成

EditText et1 = (EditText)SampleActivity.this.findViewById(R.id.et1);
EditText et2 = (EditText)SampleActivity.this.findViewById(R.id.et2); --------------------编程问答--------------------
引用 1 楼 mylzc 的回复:
如果你的Activity类为SampleActivity
请把代码
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);

改成

EditText et1 = (EditText)SampleActivity.this.findViewByI……


是Activity --------------------编程问答-------------------- 额。看错了

你试下
builder.setPositiveButton("登陆", new DialogInte易做图ce.OnClickListener() {

@Override
public void onClick(DialogInte易做图ce dialog, int which) {
// TODO Auto-generated method stub
Log.d("0", "0");
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);

Log.d("1.1", "1.1");
String str1 = et1.getEditableText().toString();
Log.d("1", "1");
if(et2 == null) {
Log.d("log", "et2 null");
}
if(et2.getText() == null {
Log.d("log", "et2 text null");
}
你看下到底是et2为null还是getText()返回的对象为null --------------------编程问答-------------------- 假如 et1 et2在test.xml中
LinearLayout test = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.test, null);

EditText et1 = (EditText)test.findViewById(R.id.et1);
EditText et2 = (EditText)test.findViewById(R.id.et2); --------------------编程问答--------------------
引用 3 楼 mylzc 的回复:
额。看错了

你试下
builder.setPositiveButton("登陆", new DialogInte易做图ce.OnClickListener() {

@Override
public void onClick(DialogInte易做图ce dialog, int which) {
// TODO Auto-generated method stub
Log.d(……


et1 为NULL --------------------编程问答-------------------- 你看下Activity对应的布局文件是否有id为et1的EditText。 --------------------编程问答-------------------- null报错不是都报到行的?
找个null错,也这么费劲? --------------------编程问答-------------------- id有。。但不知道为什么NULL --------------------编程问答-------------------- (EditText)test.this.findViewById(R.id.et1);
--------------------编程问答-------------------- 这个。。。可以不再监听事件中EditText et1 = (EditText)findViewById(R.id.et1);么。。那不是你点一次就new一个edittext先不说错误哦。反正这样不好。还有就是你的dailog是自定义的界面吗,我觉得是。。如果是的话EditText et1 = (EditText)findViewById(R.id.et1);这句就错的太离谱啦。。 --------------------编程问答-------------------- 我以前也遇到过,说个原因不知道跟你的对不对的上, 你的xml文件的大小写问题,xml文件命名不能有大写字母。 --------------------编程问答--------------------
引用 11 楼 xiyang123_ 的回复:
我以前也遇到过,说个原因不知道跟你的对不对的上, 你的xml文件的大小写问题,xml文件命名不能有大写字母。

对, --------------------编程问答-------------------- 按4楼的方法检查一下,如果再不行,重新导入项目,重装apk试一试
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,