Android:后台给button绑定onClick事件、当返回项目到手机页面时提示是否退出APP
上一篇文章我们学习了android通过findViewById的方式查找控件,本章将了解button控件,及btton如何绑定控件。
通过android的ui设计工具设计一个登录页面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/tvUsername" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/etPassword" android:layout_alignParentLeft="true" android:text="@string/main_activity_username" /> <TextView android:id="@+id/tvPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/etPassword" android:layout_alignBottom="@+id/etPassword" android:layout_alignLeft="@+id/tvUsername" android:text="@string/main_activity_password" /> <EditText android:id="@+id/etUsername" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="15dp" android:layout_marginTop="42dp" android:layout_toRightOf="@+id/tvUsername" android:hint="@string/main_activity_username_hint" android:ems="10" /> <EditText android:id="@+id/etPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/etUsername" android:layout_below="@+id/etUsername" android:layout_marginTop="41dp" android:hint="@string/main_activity_password_hint" android:ems="10" android:inputType="textPassword" > <requestFocus /> </EditText> <Button android:id="@+id/btnCancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/btnOk" android:layout_alignRight="@+id/etUsername" android:layout_marginRight="57dp" android:text="@string/main_activity_btnCancel" /> <Button android:id="@+id/btnOk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/etPassword" android:layout_marginRight="32dp" android:layout_marginTop="59dp" android:layout_toLeftOf="@+id/btnCancel" android:text="@string/main_activity_btnOk" /> <TextView android:id="@+id/tvShow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tvPassword" android:layout_alignParentBottom="true" android:layout_alignRight="@+id/etUsername" android:layout_marginBottom="74dp" android:text="" /> </RelativeLayout>
1)文本框使用的EditText控件;
2)文本hint是输入提示;
3)inputType是文本内容的格式设定。
后台给button绑定onClick事件:
android后台绑定button的onClick的函数setOnClickListener函数:
package com.example.helloword; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private EditText etUsername, etPassword; private TextView tvUsername, tvPassword, tvShow; private Button btnOk, btnCancel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUsername = (EditText) this.findViewById(R.id.etUsername); etPassword = (EditText) this.findViewById(R.id.etPassword); tvUsername = (TextView) this.findViewById(R.id.tvUsername); tvPassword = (TextView) this.findViewById(R.id.tvPassword); tvShow = (TextView) this.findViewById(R.id.tvShow); btnOk = (Button) this.findViewById(R.id.btnOk); btnCancel = (Button) this.findViewById(R.id.btnCancel); btnOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); tvShow.setText(username + "," + password); } }); btnCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { etUsername.setText(""); etPassword.setText(""); tvShow.setText(""); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
当返回项目到手机页面时提示是否退出APP
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { // 当点击回退时,弹出该窗口(也就相当于关闭操作) if (keyCode == KeyEvent.KEYCODE_BACK) { new AlertDialog.Builder(this).setTitle("是否退出?") .setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { finish(); } }).setNegativeButton("取消", null).show(); return true; } return super.onKeyUp(keyCode, event); }
使用android仿真机测试效果:
当点击返回到手机时:
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。