2012-02-19 21 views
3

3つのeditTextフィールドがすべて満たされていない限り、Androidでボタンを無効にする方法を教えてもらえますか?私はどこに条件文を入れるべきか、それをボタン・リスナーのコンテキストに置く方法はわかりません。テキストフィールドが空の場合にAndroidボタンを無効にする

私の主な活動コードです。

package com.amritayalur.mypowerschool; 



import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.text.method.ScrollingMovementMethod; 
import android.view.Gravity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 



public class MyPowerSchoolActivity extends Activity { 
Button buttonSubmit; 
TextView textViewTitle; 
TextView textViewDesc; 
EditText editTextURL, editTextUser, editTextPass; 

String url = ""; 
String str; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    buttonSubmit = (Button) findViewById(R.id.buttonSubmit); 
    textViewTitle = (TextView) findViewById(R.id.textViewTitle); 
    textViewDesc = (TextView) findViewById(R.id.textViewDesc); 

    editTextURL = (EditText) findViewById(R.id.editTextURL); 
    editTextUser = (EditText) findViewById(R.id.editTextUser); 
    editTextPass = (EditText) findViewById(R.id.editTextPass); 
    //Start TextView 
    textViewTitle.setText("MyPowerSchool"); 


    //button listener 
    buttonSubmit.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent i = new Intent(MyPowerSchoolActivity.this, creds.class);  
      i.putExtra("pschoolurl", editTextURL.getText().toString()); 
      i.putExtra("pschooluser", editTextUser.getText().toString()); 
      i.putExtra("pschoolpass", editTextPass.getText().toString()); 
      // get the text here 
      final int result = 1; 
      startActivityForResult(i, result); 

     }; 




    }); 




}  
} 

答えて

2

その非常にシンプルで、単にコードを以下にあなたののonClick()メソッドを更新し、

@Override 
    public void onClick(View v) 
    { 
     if ( (!editTextURL.getText().toString().equals("")) && (!editTextUser.getText().toString().equals("")) && (!editTextPass.getText().toString().equals(""))) 
     { 
      // TODO Auto-generated method stub 
      Intent i = new Intent(MyPowerSchoolActivity.this, creds.class);  
      i.putExtra("pschoolurl", editTextURL.getText().toString()); 
      i.putExtra("pschooluser", editTextUser.getText().toString()); 
      i.putExtra("pschoolpass", editTextPass.getText().toString()); 
      // get the text here 
      final int result = 1; 
      startActivityForResult(i, result); 
     } 
    }; 

上記の条件が満たされない場合ボタンを無効にしますが、すべてのEditTextが空でない場合にのみ許可されます。

+0

ありがとう!それは完璧に働いた。 – Slicekick

1

どのようにそれについて:

//button listener 
    buttonSubmit.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if(!"".equals(editTextURL.getText().toString()) 
      && !"".equals(editTextUser.getText().toString()) 
      && !"".equals(editTextPass.getText().toString())){ 

       Intent i = new Intent(MyPowerSchoolActivity.this, creds.class);  
       i.putExtra("pschoolurl", editTextURL.getText().toString()); 
       i.putExtra("pschooluser", editTextUser.getText().toString()); 
       i.putExtra("pschoolpass", editTextPass.getText().toString()); 
       // get the text here 
      final int result = 1; 
      startActivityForResult(i, result); 
     }    
    }; 




}); 

そして、あなたはボタンを無効にしたい場合:

   buttonSubmit.setEnabled(false); //disable button; 
+0

方法等しいTextChangeListener(String)を使用することができますが、String型のために定義されていませんか? – Slicekick

+0

私はそれをequalsに変更し、エラーはなくなりました。それは「等しい」べきか? – Slicekick

+0

申し訳ありませんが、間違いをします。それは等しいです – R4j

11

あなたは

EditText ed = //your EditText 
    ed.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      //Check if 's' is empty 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
関連する問題