Android按钮响应事件的四种方式

一、按钮响应事件的四种方式

整体布局

沿用登录界面,对登录按钮进行事件响应处理

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:shrinkColumns="1"
    android:stretchColumns="2,3"
>
<!--    第一行-->
    <TableRow
        android:id="@+id/tableRow0"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
         <ImageView
            android:id="@+id/iv_1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="#F8F6F6"
            android:src="@drawable/touxiang"
            android:scaleType="fitXY"
            />
    </TableRow>

<!--    第二行-->
    <TableRow
        android:id="@+id/tableRow1"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="55dp"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="40px"
            android:layout_column="1" />
        <EditText
            android:id="@+id/editText1"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:minWidth="100px"
            android:textSize="40px"
            android:hint="廖燕霞"
            android:textColor="#E91E63"
            android:maxLength="10"
            android:lines="1"
            android:selectAllOnFocus="true"
            android:layout_column="2" />
        <TextView
            android:id="@+id/textView1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="   "
            android:textSize="100px"
            android:layout_column="3" />
    </TableRow>

<!--    第三行-->
    <TableRow
        android:id="@+id/tableRow2"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView2"
            android:layout_width="55dp"
            android:layout_height="wrap_content"
            android:text="密   码:"
            android:textSize="40px"
            android:layout_column="1" />
        <EditText
            android:id="@+id/editText2"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:minWidth="100px"
            android:textSize="40px"
            android:hint="请输入10位数字密码"
            android:textColor="#E91E63"
            android:maxLength="10"
            android:lines="1"
            android:digits="1234567890"
            android:selectAllOnFocus="true"
            android:layout_column="2" />
        <TextView
            android:id="@+id/textView1_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="   "
            android:textSize="100px"
            android:layout_column="3" />
    </TableRow>

<!--    第四行-->
    <TableRow
        android:id="@+id/tableRow3"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button1"
            android:layout_width="55dp"
            android:layout_height="wrap_content"
            android:text="注 册"
            android:textSize="40px"
            android:layout_column="1" />
        <Button
            android:id="@+id/button2"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="登 录"
            android:textSize="40px"
            android:layout_column="2"
            android:onClick="click"/>
        <TextView
            android:id="@+id/textView1_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="   "
            android:textSize="100px"
            android:layout_column="3" />
    </TableRow>

 <!--    第四行-->
    <TableRow
    android:id="@+id/tableRow4"
    android:gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv4"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center"
            android:text="@string/baidu"
            android:textSize="50px" >
        </TextView>
    </TableRow>
</TableLayout>

1.通过布局文件中添加onClike事件重载处理

public class MainActivity extends AppCompatActivity {
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logindemo);
        button=(Button)findViewById(R.id.button2);
         }
    //重载
    public void ClickButton2(View view){
        button.setText("(布局文件onclike)正在登陆中...");
    }
}

效果

在这里插入图片描述

2.利用匿名内部类方式处理

public class MainActivity extends AppCompatActivity {
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logindemo);
		button=(Button)findViewById(R.id.button2);
		//匿名内部类
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                button.setText("(匿名内部类)正在登陆中...");
            }
        });
    }
}

效果

在这里插入图片描述

3.利用外部类方式处理

public class MainActivity extends AppCompatActivity {
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logindemo);
        button=(Button)findViewById(R.id.button2);
        //关键
		button.setOnClickListener(new MyListener());
         }
    //外部类
    class MyListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            button.setText("(外部类)正在登陆中...");
        }
    }
}

效果

在这里插入图片描述

4.利用Lambda表达式处理

Lambda环境配置见:https://blog.csdn.net/qq_18625571/article/details/104466610

public class MainActivity extends AppCompatActivity {
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logindemo);
        button=(Button)findViewById(R.id.button2);

        //Lambda表达式
        button.setOnClickListener(v->button.setText("(Lambda)正在登陆中..."));
    }
}

效果

在这里插入图片描述

发布了16 篇原创文章 · 获赞 5 · 访问量 726

猜你喜欢

转载自blog.csdn.net/qq_18625571/article/details/104466711