エディットテキストに何も入っていないときにボタンを押すと、トーストを表示させたい☆

789 views
Skip to first unread message

P

unread,
Sep 5, 2011, 8:24:45 PM9/5/11
to 日本Androidの会
エディットテキストに何も入っていないときにボタンを押すと、トーストを表示させたいです。
このコードだとエラーになってしまいます。

どの値を拾ったらいいのでしょうか?

よろしくお願いします☆

EditText edit = (EditText)findViewById(R.id.edittext);

//SpannableStringBuilder sp =
(SpannableStringBuilder)edit.getText();
//String str = sp.toString();

String str = edit.getText().toString();

if(str == null){
Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
}else{
     l.addView(new Screen(this));
}
}

ゆゆ

unread,
Sep 5, 2011, 8:30:26 PM9/5/11
to 日本Androidの会

> if(str == null){
> Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
> }else{
>      l.addView(new Screen(this));
> }
> }

if(str.equals("")){
Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
}
と書いたらできますよ。
javaのStringの関数です。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html

ゆゆ

unread,
Sep 5, 2011, 8:32:36 PM9/5/11
to 日本Androidの会

> if(str == null){
> Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
> }else{
>      l.addView(new Screen(this));
> }
> }

yuka2py

unread,
Sep 5, 2011, 8:32:38 PM9/5/11
to android-g...@googlegroups.com
Pさん、

おはようございます。ゆぅかです。
テキストが空かどうか調べるのであれば、↓ではなくて...

> if(str == null){

↓ではないでしょうか?

if ("".eqauls(str)) {

何か勘違いしてたらすみません。

-- ゆぅか。




2011年9月6日9:24 P <h.m.090...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


P

unread,
Sep 6, 2011, 2:11:30 AM9/6/11
to 日本Androidの会
ゆゆさん、yuka2pyさん、返信ありがとうございます♪
そーでした!
String を if文 でつかうときは、equals でしたね。
基礎を聞いてしまい申し訳ありませんでした。

ちなみに、このコードだと、edittext のイベントを拾うことができません。

「エディットテキストが未入力」のイベントを拾う方法を教えていただけないでしょうか?

On 9月6日, 午前9:32, yuka2py <yuka...@gmail.com> wrote:
> Pさん、
>
> おはようございます。ゆぅかです。
> テキストが空かどうか調べるのであれば、↓ではなくて...
>
> > if(str == null){
>
> ↓ではないでしょうか?
>
> if ("".eqauls(str)) {
>
> 何か勘違いしてたらすみません。
>
> -- ゆぅか。
>
> 2011年9月6日9:24 P <h.m.09053977...@gmail.com>:
>
>
>
> > エディットテキストに何も入っていないときにボタンを押すと、トーストを表示させたいです。
> > このコードだとエラーになってしまいます。
>
> > どの値を拾ったらいいのでしょうか?
>
> > よろしくお願いします☆
>
> > EditText edit = (EditText)findViewById(R.id.edittext);
>
> > //SpannableStringBuilder sp =
> > (SpannableStringBuilder)edit.getText();
> > //String str = sp.toString();
>
> > String str = edit.getText().toString();
>
> > if(str == null){
> > Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
> > }else{
> > l.addView(new Screen(this));
> > }
> > }
>
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-group-j...@googlegroups.comにメールを送信してくださ-い。
> > 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

yanagi

unread,
Sep 6, 2011, 2:39:48 AM9/6/11
to android-g...@googlegroups.com
Pさん

高柳と申します。
EditText内が変更された際のイベントは、
EditTextのaddTextChangeListenerにTextWatcherを実装することで拾えます。

-----------------------
EditText edit = (EditText)findViewById(R.id.edittext);
edit.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void afterTextChanged(Editable s) {
    }
});
-----------------------

上記afterTextChange内で、EditTextに入力された文字列を取得して、
判定処理を入れてあげると、想定どおりの動作になるかと思います。

以上です。

--
高柳 翔
mail: sobac...@gmail.com
Twitter: sobachanko

2011年9月6日15:11 P <h.m.090...@gmail.com>:

元木

unread,
Sep 6, 2011, 2:40:48 AM9/6/11
to android-g...@googlegroups.com

こんにちは、元木です。

ご質問の内容が断片的なので、
もう少し情報を載せていただけると
こちらも協力しやすいです。

例えば、

    ・どんな動作を実現したいのか
    ・現状、どうなってしまうのか
        (どこで何Exception が発生するか、とか)

など。

よろしくお願いします。

2011/09/06 15:11 "P" <h.m.090...@gmail.com>:

saramakkuro

unread,
Sep 6, 2011, 2:50:08 AM9/6/11
to android-g...@googlegroups.com
saramakkuroです。
押すボタンのonClickなどで実装すればよいと思います
以下、一例です

//適当なActivity
public class XXXXActivity extends Activity implements OnClickListener{
 private EditText edit;
 private Button button; //適当なボタン

@Override
public void onCreate(Bundle savedInstanceState){
edit = (EditText)findViewById(R.id.edittext);

//適当なボタンのインスタンス化(リソースで作って呼び出してもかまわない)
button = new Button(this);
button.setId(0);
button.setOnClickListener(this);

public void onClick(View view) {
if(view.getId() == 0){
  String str = edit.getText().toString();

if(str.equals(""){


Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
}else{

   //何か入力されていたときの処理
}
}
}

}

実際に動かしたわけじゃないので、動くかどうかわかりませんが、こんな感じだと思います。

2011年9月6日15:11 P <h.m.090...@gmail.com>:

P

unread,
Sep 6, 2011, 3:32:34 AM9/6/11
to 日本Androidの会
高柳さん、元木さん、saramakkuroさん、返信ありがとうございます♪

TextWatcherは、afterTextChange内の記述に不安があったので、
if(view.getId() == 0){ を試したところ、思い通りに動きました。

テキスト内が空のときは、トースト表示。
記入時には、画面遷移。することができました。

皆様、ありがとうございました☆

On 9月6日, 午後3:50, saramakkuro <saramakk...@gmail.com> wrote:
> saramakkuroです。
> 押すボタンのonClickなどで実装すればよいと思います
> 以下、一例です
>
> //適当なActivity
> public class XXXXActivity extends Activity implements OnClickListener{
>  private EditText edit;
>  private Button button; //適当なボタン
>
> @Override
> public void onCreate(Bundle savedInstanceState){
> edit = (EditText)findViewById(R.id.edittext);
>
> //適当なボタンのインスタンス化(リソースで作って呼び出してもかまわない)
> button = new Button(this);
> button.setId(0);
> button.setOnClickListener(this);
> }
>
> public void onClick(View view) {
> if(view.getId() == 0){
>   String str = edit.getText().toString();
>
> if(str.equals(""){
> Toast.makeText(this, "入力してください", Toast.LENGTH_LONG).show();
> }else{
>    //何か入力されていたときの処理
> }
> }
> }
>
> }
>
> 実際に動かしたわけじゃないので、動くかどうかわかりませんが、こんな感じだと思います。
>
> 2011年9月6日15:11 P <h.m.09053977...@gmail.com>:
> >> > このグループから退会するには、android-group-j...@googlegroups.comにメールを送信してくださ--い。
Reply all
Reply to author
Forward
0 new messages