如何使数字编辑文本默认为空白,然后使用getText

时间:2014-08-14 05:44:53

标签: android-edittext default gettext

请帮助!我有编辑文本字段,其inputType是数字。在firstActivity中点击Submit按钮,我想通过Bundle将值发送到下一个活动。我想让这个领域成为必修课。在发送值之前,我正在检查EditText是否为空。如果它的空白我想给Toast消息“请输入数字”。我使用下面的代码行来获取数字文本

  editTextValue= (EditText) findViewById(R.id.edit_attendance);
  editTextValue.setText("0");
  var1 = Integer.valueOf((editTextValue.getText().toString()));

要使此代码生效,我必须先将默认值设置为0
但是由于这个当用户在这个EditText中输入值时,他必须先擦除0然后输入数字。我不想将其设置为0值。有没有其他方法可以使这项工作。

以下是我的XML代码:

 <EditText
        android:id="@+id/edit_1"
        android:layout_marginLeft="5sp"
        android:layout_width="100sp"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="0"
        android:textColor="@android:color/white" />

FirstActivity.java

onCreate(){
 editTextValue = (EditText) findViewById(R.id.edit_1);

 editTextValue.setText("0");


  btnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

        var1 = Integer.valueOf((editTextValue.getText()
                    .toString()));

         if (var1 == 0) // when no value is entered
                Toast.makeText(getApplicationContext(),
                        "Please enter value",
                        Toast.LENGTH_SHORT).show();
         else
         {
              Intent i = new Intent(getApplicationContext(),
                        SecondActivity.class);


                dataBundle.putInt(SecondActivity.VAR1,var1);
                i.putExtras(dataBundle);
                startActivity(i);

         }

}

1 个答案:

答案 0 :(得分:0)

以下代码对我有用:

// editTextValue.setText("0");

    editTextValue.setOnEditorActionListener(new OnEditorActionListener() {

        public boolean onEditorAction(TextView v, int actionId,
                KeyEvent event) {
            // TODO Auto-generated method stub
            if (actionId == EditorInfo.IME_ACTION_DONE) {

                var1 = Integer.valueOf((editTextValue
                        .getText().toString()));

            }

            return false;
        }
    });