如何仅使用数字设置密码活动?

时间:2013-06-24 09:43:09

标签: android android-activity

`public class Password extends Activity {

Button one, two, three, four, five, six, seven, eight, nine, zero, exit, okay;
EditText text;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.pass);



    one = (Button) findViewById(R.id.button);
    two = (Button) findViewById(R.id.button2);
    three = (Button) findViewById(R.id.button3);
    four = (Button) findViewById(R.id.button4);
    five = (Button) findViewById(R.id.button5);
    six = (Button) findViewById(R.id.button6);
    seven = (Button) findViewById(R.id.button7);
    eight = (Button) findViewById(R.id.button8);
    nine = (Button) findViewById(R.id.button9);
    exit = (Button) findViewById(R.id.button10);
    zero = (Button) findViewById(R.id.button11);
    okay = (Button) findViewById(R.id.button12);

}

    public void onClick(View v){
    switch (v.getId()){
        case R.id.button:text.setText("1");
            break;
        case R.id.button2:text.setText("1");
            break;
        case R.id.button3:text.setText("1");
            break;
        case R.id.button4:text.setText("1");
            break;
        case R.id.button5:text.setText("1");
            break;
        case R.id.button6:text.setText("1");
            break;
        case R.id.button7:text.setText("1");
            break;
        case R.id.button8:text.setText("1");
            break;
        case R.id.button9:text.setText("1");
            break;
        case R.id.button10:text.setText("1");
            break;
        case R.id.button11:text.setText("1");
            break;
        case R.id.button12:text.setText("1");
            break;
    }
}

}`enter image description here

我已将照片附在下方。我想创建这个活动。我读了一些关于sharedPreferences的内容,但它仍然让我感到困惑。谁能告诉我如何实现这个目标呢?

编辑:非常感谢你们。我做了一些其他的事情。开关盒没有工作,所以我添加了代码 one.setOnClickListener(){} ..... 到每个按钮。它现在正在运作。 非常感谢你们所有人。如果我没有在这里发帖,永远不会有想法。

3 个答案:

答案 0 :(得分:3)

<强>更新
试试这个

public void onClick(View v){
    switch (v.getId()){
        case R.id.button:text.setText(text.getText()+"1");
            break;
        case R.id.button2:text.setText(text.getText()+"2");
            break;
        case R.id.button3:text.setText(text.getText()+"3");
            break;
        case R.id.button4:text.setText(text.getText()+"4");
            break;
        case R.id.button5:text.setText(text.getText()+"5");
            break;
        case R.id.button6:text.setText(text.getText()+"6");
            break;
        case R.id.button7:text.setText(text.getText()+"7");
            break;
        case R.id.button8:text.setText(text.getText()+"8");
            break;
        case R.id.button9:text.setText(text.getText()+"9");
            break;
        case R.id.button10:text.setText("1");
            break;
        case R.id.button11:text.setText("1");
            break;
        case R.id.button12:text.setText("1");
            break;
    }

和其他按钮放置适当的功能

用于edittext

 android:inputType="number"

   android:inputType="numberPassword" 

在xml文件中的edittext中 并且对于SharedPreferences,请参阅Waza_Be的回答

答案 1 :(得分:2)

试试这可能对你有所帮助 在xml文件中使用它

<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberPassword" >

<requestFocus />

答案 2 :(得分:1)

要设置密码,您可以执行以下操作:(这不是非常安全,不针对银行应用程序; - )

    SharedPreferences settings= PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor prefEditor=settings.edit();
    prefEditor.putString("password","123456");
    // if 4 digits: prefEditor.putInt("password",1234);
    prefEditor.commit();

由于整数的最大值,使用数字有点棘手:

  

Java int:int是32位有符号类型,范围从-2,147,483,648到   2147483647。

当然,如果您强制使用4位数密码输入密码,使用int没有问题,但是因为您将使用TextView / EditText中的字符串,将其转换为数字听起来不是最好的主意

当用户想要登录Activity时,只需比较他输入的内容:

settings.getInt("password",-1)