如何在Android中按下四个按钮时启动代码

时间:2017-11-24 20:50:03

标签: java android

我想在Android中使用Buttons和TextView进行引脚输入。 我有针脚的Textview和9个按钮供用户按数字。 当用户按下四个按钮以逐字母更改我的Textview(按钮按钮),以及输入第四个按钮以启动代码时,我想要的是什么

这是图片:Layout

请提示?

这是我的代码:

content_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.group.digit.razvoj.appointment.MainActivity"
tools:showIn="@layout/app_bar_main">


<LinearLayout
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/pinLayoutMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:orientation="vertical"
        android:paddingRight="@dimen/left_margin_pin">

        <LinearLayout
            android:id="@+id/pinTvLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="@dimen/between_margin"
            android:layout_marginTop="@dimen/between_margin"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/pinTv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/pin"
                android:textColor="@android:color/black"
                android:textSize="18sp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/passLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="50dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/pinEntry"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="****"
                android:textColor="@android:color/black"
                android:textSize="18sp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/firstRow"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="2dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/b1"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="1"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b2"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="2"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b3"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="3"
                android:textColor="@color/black"
                android:textSize="30sp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/secondRow"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="2dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/b4"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="4"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b5"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="5"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b6"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="6"
                android:textColor="@color/black"
                android:textSize="30sp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/sthirdRow"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="2dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/b7"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="7"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b8"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="8"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b9"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="9"
                android:textColor="@color/black"
                android:textSize="30sp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/forthow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="2dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="1"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/b0"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="0"
                android:textColor="@color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/bback"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginRight="2dp"
                android:layout_weight="1"
                android:background="@drawable/round_button"
                android:gravity="center_vertical|center_horizontal"
                android:text="-"
                android:textColor="@color/black"
                android:textSize="30sp" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

MainActivity.java:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //init buttons
    for (int i = 0; i < MAX_PIN_NUM; i++) {
        buttonsPinWidget[i] = (Button) findViewById(buttonsPinId[i]);
    }

    pinentry = (TextView) findViewById(R.id.pinEntry);

}

3 个答案:

答案 0 :(得分:1)

你应该使用一个onClickListener for everyone按钮,里面有switch case。 在每个switch case block的情况下你应该删除addor(如果你有删除按钮)一个字符TextView。 切换大小写块后,检查TextView中的文本长度。如果它的长度等于4,您可以尝试授权或登录或其他操作。

抱歉英语不好。

答案 1 :(得分:0)

首先是非常有趣的问题。 我能想到的唯一解决方案是创建一个公共方法,它总是检查textview的长度(我认为应该是edittext),并为每个按钮添加该方法。一旦textview的长度为4,触发你想要的代码。 如果您需要更多说明,请告诉我

答案 2 :(得分:0)

btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String s=txtView.getText().toString();
            if(s.length()<3){
                s=s+btn.getText().toString();
                txtView.setText(""+s);
            }else if(s.length()==3){
                s=s+btn.getText().toString();
                txtView.setText(""+s);
                 // write your code 
            }
        }
    });