java - 如何在android中持续检查文本更改事件?

标签 java android

如何让我的应用程序不断检查此情况?意思是继续检查其中是否有文本

String str1, str2;

str1 = word.getText().toString();
str2 = answer.getText().toString();

if(!(str1.equals("")) && !(str2.equals("")))
{
  teach.setEnabled(true);
}
else
{
  teach.setEnabled(false);
}

这是我的java代码,我将在哪里放置使其检查和所有事情的固定代码?请帮忙!

public class TeachmeDialog extends Activity implements OnClickListener {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.teachme);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    Button teach = (Button)findViewById(R.id.btn_teach_send);
    teach.setOnClickListener(this);


}



@Override
public void onClick(View v) {
    switch(v.getId())
    {
        case R.id.btn_teach_send:
        {
            // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://monaiz.net/get.php");

            String responseStr = "";

            try {
                TextView word = (TextView)findViewById(R.id.tv_teach_request);
                TextView answer = (TextView)findViewById(R.id.tv_teach_response);

                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
                nameValuePairs.add(new BasicNameValuePair("word", word.getText().toString()));
                nameValuePairs.add(new BasicNameValuePair("answer", answer.getText().toString()));
                nameValuePairs.add(new BasicNameValuePair("action", "teach"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity( );

                responseStr = EntityUtils.toString( entity );

            } catch (Exception e) {
                // TODO Auto-generated catch block
            }

            if( responseStr.equals("ok") )
            {
                Toast.makeText(getApplicationContext(), "Poco just learned a new word!", Toast.LENGTH_LONG).show();
                try {
                    this.finish();
                } catch (Throwable e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

}

最佳答案

改用TextWatcher。您的“单词”似乎是一个EditText。所以你可以做这样的事情-

word.addTextChangedListener(new TextWatcher() {

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

        }

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

        }

        @Override
        public void afterTextChanged(Editable s) {
                  teach.setEnabled(true);
            }
    });

关于java - 如何在android中持续检查文本更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782429/

相关文章:

javascript - 自动填充 WebView 表单

java - 无法从类 : java 中找到图像文件

android - 如何让 x10 mini 出现在 osx 上的 adb devices 中?

android - 为什么我的卡片 View 被剪裁

java - Android,如何使用java从资源id获取xml资源值

java - 如何捕获基本异常并在 UI 上显示 - java

java - 将文件实例传递给 Playframework 中的另一个方法时出现 NullPointerException

java - 为什么这个 <servlet-mapping> 破坏了我在 Jersey 的 REST API?

javascript - 使用react-native构建android应用程序时如何解决命令节点问题?

java - 当用户在某个地方时,我该如何使用他们的位置?这个地方会根据位置触发一个 Action