【问题标题】:Android toggle button just working once. How can i make it work every time?Android 切换按钮只工作一次。我怎样才能让它每次都工作?
【发布时间】:2012-01-24 01:47:13
【问题描述】:

我正在学习 android,我正在做一个非常简单的任务。我正在使用切换按钮来显示/隐藏密码,当我启动应用程序并单击切换按钮时,它完美地工作......第一次。

但是当我再次单击它时(再次隐藏或显示密码)。不会发生任何事情。我希望有人可以帮助我,我将非常感激。顺便说一下,这是我的代码,如果你想查看的话。

package com.Amet.Android;

import android.app.Activity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;

public class Texting extends Activity{



@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.text);

    Button checked = (Button) findViewById(R.id.bChecked);
    final ToggleButton tgShow = (ToggleButton) findViewById(R.id.tbType);
    final EditText password = (EditText) findViewById(R.id.etPasswordField);
    TextView invalid = (TextView) findViewById(R.id.tvInvalid);

    tgShow.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(tgShow.isSelected()){

                password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
            }else{

                password.setInputType(InputType.TYPE_CLASS_TEXT);
            }
        }
    });
}



}

我也尝试替换:

password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

在“if”语句中:

password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

但我也一样。

【问题讨论】:

    标签: java android togglebutton


    【解决方案1】:

    您是否尝试过 tgShow.isChecked() 而不是 tgShow.isSelected()

    【讨论】:

      【解决方案2】:

      setInputType 被称为将 TransformationMethod 重置为 null 时,它看起来像 EditText。这段代码对我有用:

      mPasswordField = (EditText)customView.findViewById(R.id.password);
      ...
      private void showPassword(boolean show) {
          int selectionStart = mPasswordField.getSelectionStart();
          int selectionEnd = mPasswordField.getSelectionEnd();
          mPasswordField.setInputType(show ?
              InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
              InputType.TYPE_TEXT_VARIATION_PASSWORD);
          mPasswordField.setTransformationMethod(show ?
              null :
              PasswordTransformationMethod.getInstance());
          mPasswordField.setSelection(selectionStart, selectionEnd);
      }
      

      根据this thread一个甚至不必打电话给setInputMethod

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-27
        • 1970-01-01
        • 2012-07-29
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        相关资源
        最近更新 更多