1、使用TAbleLayout布局实现一个简单的计算器界面
<?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:padding="20dp">
<!--表格布局-->
<TableRow>
<EditText
android:layout_span="4"
android:textSize="20sp" />
</TableRow>
<TableRow>
<Button
android:text="("
android:textSize="20sp"/>
<Button
android:text=")"
android:textSize="20sp"/>
<Button
android:text="<<"
android:textSize="20sp"/>
<Button
android:text="+"
android:textSize="20sp"/>
</TableRow>
<TableRow>
<Button
android:text="7"
android:textSize="20sp"/>
<Button
android:text="8"
android:textSize="20sp"/>
<Button
android:text="9"
android:textSize="20sp"/>
<Button
android:text="—"
android:textSize="20sp"/>
</TableRow>
<TableRow>
<Button
android:text="4"
android:textSize="20sp"/>
<Button
android:text="5"
android:textSize="20sp"/>
<Button
android:text="6"
android:textSize="20sp"/>
<Button
android:text="x"
android:textSize="20sp"/>
</TableRow>
<TableRow>
<Button
android:text="1"
android:textSize="20sp" />
<Button
android:text="2"
android:textSize="20sp" />
<Button
android:text="3"
android:textSize="20sp" />
<Button
android:text="/"
android:textSize="20sp" />
</TableRow>
<TableRow>
<Button
android:layout_span="2"
android:text="0"
android:textSize="20sp"/>
<Button
android:layout_column="2"
android:text="."
android:textSize="20sp"/>
<Button
android:text="="
android:textSize="20sp" />
</TableRow>
</TableLayout>
2、开发一个整数加法程序,实现将计算结果显示到界面上
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.example.dell.mylayout.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请输入整数计算"
android:textSize="30sp"
android:gravity="center"
android:layout_marginBottom="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:phoneNumber="true"
android:hint="数字1"
android:textSize="30sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:textSize="30sp"
android:layout_margin="10dp"/>
<EditText
android:id="@+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:phoneNumber="true"
android:hint="数字2"
android:textSize="30sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textSize="30sp"
android:layout_margin="10dp"/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"/>
</LinearLayout>
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="计算"
android:textSize="30sp"
android:background="#04a8e9"
android:layout_marginTop="20dp"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
package com.example.dell.mylayout;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText et1;
EditText et2;
TextView tv;
Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText)findViewById(R.id.et1);
et2 = (EditText)findViewById(R.id.et2);
tv = (TextView)findViewById(R.id.tv);
bt = (Button)findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener(){
String str = null;
@Override
public void onClick(View view){
String str1 = et1.getText().toString();
String str2 = et2.getText().toString();
int num1 = Integer.valueOf(str1).intValue();
int num2 = Integer.valueOf(str2).intValue();
int sum = num1 + num2;
str = String.valueOf(sum);
tv.setText(str);
}
});
}
}
3、开发一个自定义对话框,其界面中显示标题、提示内容、确定和取消按钮。当点击回退键时,用于提示用户是退出应用。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.example.dell.mylayout.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="当点击回退键时,用于提示用户是退出应用。"
android:textSize="30sp"/>
</android.support.constraint.ConstraintLayout>
custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<!--自定义对话框-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:visibility="visible"
android:textColor="#333333"
android:textSize="20sp"
android:layout_marginBottom="20dp"/>
<TextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#999999"
android:textSize="18sp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"/>
<View
android:layout_width="match_parent"
android:layout_height="2px"
android:layout_marginTop="20dp"
android:background="#E8E8E8"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/negtive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="12dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:background="@null"
android:gravity="center"
android:singleLine="true"
android:textColor="#999999"
android:textSize="20sp"/>
<View
android:id="@+id/column_line"
android:layout_width="2px"
android:layout_height="match_parent"
android:background="#E8E8E8"/>
<Button
android:id="@+id/positive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="12dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:background="@null"
android:gravity="center"
android:textColor="#38ADFF"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
package com.example.dell.mylayout;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class CommonDialog extends AlertDialog {
private TextView titleTv;//标题
private TextView messageTv;//消息
private Button negtiveBn, positiveBn;//确认、取消
public CommonDialog(Context context){
super(context);
}
private String title;
private String message;
private String negtive, positive;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_dialog);
initView();//初始化界面控件
initEvent();//初始化界面控件的点击事件
}
//初始化界面控件
private void initView(){
negtiveBn = (Button)findViewById(R.id.negtive);
positiveBn = (Button)findViewById(R.id.positive);
titleTv = (TextView)findViewById(R.id.title);
messageTv = (TextView)findViewById(R.id.message);
}
//初始化界面控件的显示数据
private void refreshView(){
//如果自定义了信息,会在弹出框中显示
if (!TextUtils.isEmpty(title)){
titleTv.setText(title);//设置标题控件的文本为自定义的title
titleTv.setVisibility(View.VISIBLE);//标题控件设置为显示状态
}else {
titleTv.setVisibility(View.GONE);//标题控件设置为隐藏状态
}
if (!TextUtils.isEmpty(message)){
messageTv.setText(message);
}
if (!TextUtils.isEmpty(positive)){
positiveBn.setText(positive);
}else {
positiveBn.setText(" 确定 ");//设置按钮文本
}
if (!TextUtils.isEmpty(negtive)){
negtiveBn.setText(negtive);
}else {
negtiveBn.setText(" 取消 ");
}
}
//初始化界面的确定和取消监听器
private void initEvent(){
positiveBn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if (onClickBottomListener!=null){
onClickBottomListener.onPositiveClick();;
}
}
});
negtiveBn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onClickBottomListener!=null){
onClickBottomListener.onNegtiveClick();
}
}
});
}
@Override
public void show(){
super.show();
refreshView();
}
public interface OnClickBottomListener{
void onPositiveClick();//实现“确定”按钮点击事件的方法
void onNegtiveClick();//“取消”
}
//设置按钮回调
public OnClickBottomListener onClickBottomListener;
public CommonDialog setOnClickBottomListener(OnClickBottomListener onClickBottomListener){
this.onClickBottomListener = onClickBottomListener;
return this;
}
public CommonDialog setMaeeage(String message){
this.message = message;
return this;
}
public CommonDialog setTitle(String title){
this.title = title;
return this;
}
public CommonDialog setPositive(String positive){
this.positive = positive;
return this;
}
public CommonDialog setNegtive(String negtive){
this.negtive = negtive;
return this;
}
}
package com.example.dell.mylayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed(){
final CommonDialog dialog = new CommonDialog(MainActivity.this);
dialog.setTitle("自定义对话框");
dialog.setMaeeage("是否退出应用?");
dialog.setNegtive("取消");
dialog.setPositive("确定");
dialog.setOnClickBottomListener(new CommonDialog.OnClickBottomListener() {
@Override
public void onPositiveClick() {
dialog.dismiss();
MainActivity.this.finish();
}
@Override
public void onNegtiveClick() {
dialog.dismiss();
}
});
dialog.show();
}
}