【问题标题】:can't get string value from edittext无法从edittext获取字符串值
【发布时间】:2014-08-12 08:21:45
【问题描述】:

我正在尝试使用 jdbc 连接器将数据发送到 mysql 数据库。我使用 EditText 让用户填写他们的信息。我正在尝试从 EditText 获取字符串值,但它们返回 null 。这是我的活动课程,我无法弄清楚为什么字符串值返回空字符串。

String setFirstname = "";
String setLastname = "";
String setCountry = "";
String setCity = "";
String setCompany = "";
String setAddress = "";
String setEmail = "";
String setUsername = "";
String setPhone = "";
String setPassword = "";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);
    TextView loginScreen = (TextView) findViewById(R.id.link_to_login);
    final EditText getFirstname = (EditText) findViewById(R.id.reg_firstname);
    setFirstname = getFirstname.getText().toString().trim();
    final EditText getCountry = (EditText) findViewById(R.id.reg_country);
    setCountry= getCountry.getText().toString().trim();
    final EditText getLastname = (EditText) findViewById(R.id.reg_lastname);
    setLastname= getLastname.getText().toString().trim();
    final EditText getCity = (EditText) findViewById(R.id.reg_city);
    setCity= getCity.getText().toString().trim();
    final EditText getCompany = (EditText) findViewById(R.id.reg_company);
    setCompany= getCompany.getText().toString().trim();
    final EditText getAddress = (EditText) findViewById(R.id.reg_address);
    setAddress= getAddress.getText().toString().trim();

    Button reg = (Button) findViewById(R.id.btnRegister);
    reg.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

           new readySQL().execute();
        }
    });

    // Listening to Login Screen link
    loginScreen.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            // Closing registration screen
            // Switching to Login Screen/closing register screen
            finish();
        }
    });

【问题讨论】:

  • 在单击按钮或 AsyncTask 时移动从 EditText 获得 String 的部分
  • editText.getText().toString()

标签: android android-edittext


【解决方案1】:

您在创建编辑文本时获取字符串。当时显然是空的。用户尚未输入任何内容。 相反,您应该这样做

Button reg = (Button) findViewById(R.id.btnRegister);
reg.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

       // Fetch strings from edit texts here and check if they are not empty

       new readySQL().execute();
    }
});

【讨论】:

  • 只需要等待 5 分钟 np :)
【解决方案2】:

您不应该在初始化时获取 editText 值,而是必须在 editText 上设置一个侦听器以检测值何时更改,如下所示:

editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(final CharSequence s, final int start,
                final int before, final int count) {
             //collect the changed value
             setValue=(editText.getText().toString().trim());

        }

        @Override
        public void beforeTextChanged(final CharSequence s,

        }

        @Override
        public void afterTextChanged(final Editable s) {

        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多