Android: тост и редактировать.GetText - PullRequest
1 голос
/ 23 января 2012

Я пытаюсь выяснить, вставил ли пользователь что-то в текст редактирования.Это работает, но когда я ничего не ввожу, это не показывается;"Пожалуйста, введите Ваше имя".Также пробовал null вместо "" или "" не сработало.

Любая помощь?

    package com.grumbledorf.Hellotraining;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class main extends Activity {

    EditText etName;
    Button btMake;


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

        etName = (EditText) findViewById(R.id.etName);
        btMake = (Button) findViewById(R.id.btPress);
        final Context context = getApplicationContext();
        final int duration = Toast.LENGTH_SHORT;

        btMake.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                if(etName.getText().toString() == " "){

                    Toast toast = Toast.makeText(context, "Please enter your name", duration);
                    toast.show();
                }else{
                    String Henk = etName.getText().toString();
                    Toast toast = Toast.makeText(context, "Welcome, " +  Henk, duration);
                    toast.show();
                }

            }
        });



    }
}

Ответы [ 4 ]

2 голосов
/ 23 января 2012

Может быть, я ошибся, но почему вы предполагаете, что ввод по умолчанию - " "

попробуйте вместо этого if(etName.getText().equals(""))

1 голос
/ 23 января 2012

Попробуйте это: etName.getText (). ToString (). Equals ("")

В Java, когда вы сравниваете значения String, вам необходимо использовать метод .equals (..).Когда вы сравниваете ссылки для двух объектов, тогда только ==

0 голосов
/ 23 января 2012
etName.getText().toString() == " "

Этот код не будет работать.«» Фактически создает новую строку и сравнивает адреса памяти.Ну, адрес памяти не будет таким же, потому что это другой объект.Используйте

etName.getText().toString().equals("")

0 голосов
/ 23 января 2012

Ларс вместо:

etName.getText().toString() == " ";

Использование:

etName.getText().toString().length() == 0;
...