gpt4 book ai didi

java - Android 对话框与 edittext() 不断返回 null 抛出异常

转载 作者:行者123 更新时间:2023-12-01 15:55:34 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的对话框以允许我的用户创建新用户。我的布局符合我需要的方式,但由于某种原因,当我单击“创建”按钮时,它会引发异常。我已经尝试了各种方法来实现这一目标,但我必须遗漏一些东西。我现在处于这个错误的第二天,我别无选择。我曾经重写过两次代码并仔细检查过。

这是我到目前为止所拥有的:

    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final HttpClient httpclient = new DefaultHttpClient();

//new user button, work in progress
Button newuser = (Button) findViewById(R.id.new_user);
newuser.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Dialog createU = new Dialog(MainActivity.this);



createU.setContentView(R.layout.newuser);
createU.setTitle("Create User");

Button create = (Button) createU.findViewById(R.id.createUsr);
Button cancel = (Button) createU.findViewById(R.id.cancel);



create.setOnClickListener(new View.OnClickListener() {//creates the user

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String usr = null, pass = null;
EditText userU = (EditText) findViewById(R.id.createUsr);
EditText passU = (EditText) findViewById(R.id.cancel);

if(userU.getText()!= null){//throws ERROR/AndroidRuntime(9937): java.lang.NullPointerException

usr = userU.getText().toString();
}
if(passU.getText()!=null){
pass = passU.getText().toString();
}


Toast toast = Toast.makeText(getApplicationContext(), "User: " + usr + ", Pass: " + pass, Toast.LENGTH_SHORT);
toast.show();
}
});
cancel.setOnClickListener(new View.OnClickListener() {//closes dialog

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
createU.hide();
}
});
createU.show();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>

<EditText android:id="@+id/usrTxt" android:layout_height="wrap_content"
android:layout_width="match_parent" android:maxLines="1" android:hint="Username"
android:text="2"></EditText>
<EditText android:id="@+id/pasTxt" android:layout_height="wrap_content"
android:layout_width="match_parent" android:layout_below="@id/usrTxt"
android:inputType="textPassword" android:maxLines="1" android:hint="Password"
android:text="2"></EditText>
<Button android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_width="wrap_content"
android:layout_below="@+id/pasTxt" android:text="Create" android:id="@+id/createUsr"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/cancel"
android:layout_alignParentRight="true" android:text="Cencel"
android:layout_below="@+id/pasTxt"></Button>

最佳答案

不要用空值初始化字符串

避免String usr = null,pass = null;。希望这会有所帮助。

更新:

将上面导致错误的行更改为

if (!userU.getText().toString().equals("")) {

更新2

如下更改 Edittext 初始化行

  EditText userU = (EditText) findViewById(R.id.usrTxt);                     
EditText passU = (EditText) findViewById(R.id.pasTxt);

关于java - Android 对话框与 edittext() 不断返回 null 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5138278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com