第三章 用户界面

版权声明:未经王小波同学允许不得转载本文内容,否则将视为侵权;博主qq:1419758909;反正也没人转载~ https://blog.csdn.net/qq_38900441/article/details/84898005

第三章  用户界面

界面元素:

视图组件:TextView Button EditText Checkbox Spinner ListView

视图容器

布局管理:线性、相对、绝对、网格、表格、框架

事件处理机制:

事件(Event)

事件源(Event Source)

事件监听器(Event Listener)

Android提供了两种创建布局的方式:XML布局文件和代码直接实现

实现事件处理步骤:

创建事件监听器

在事件处理方法编写事件处理代码

在相应组件注册事件监听器

匿名方式事件处理代码

public class MainActivity extends AppCompatActivity {
    public void onCreate(Bundle saveInstanceState){
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_main);
        Button btnYellow=(Button)this.findViewById(R.id.btnYellow);
        Button btnBlue=(Button)this.findViewById(R.id.btnBlue);
        btnYellow.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                getWindow().setBackgroundDrawableResource(R.color.yellow);
            }
        });
        btnBlue.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                getWindow().setBackgroundDrawableResource(R.color.blue);

            }
        });

对应布局代码

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">
   <Button
       android:id="@+id/btnYellow"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="黄色"/>
    <Button
        android:id="@+id/btnBlue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="蓝色"/> 
</LinearLayout>

创建Toast方法(没有焦点,显示时间有限)

调用Toast的静态方法makeText()创建一个指定文本和时长的提示信息

调用Toast的show()方法显示提示信息

Toast t1 = Toast.makeText(getApplicationContext(),"多显示一会",Toast.LENGTH_LONG);

t1.show();

对话框

AlertDialog提示对话框

ProgressDialog 进度对话框

DatePickerDialog日期选择对话框

TimePickerDialog时间选择对话框

创建提示对话框的步骤

获得AlterDialog的静态内部类的Builder对象,由该类创建对话框

通过Builder对象设置对话框的标题、按钮、以及按钮将要响应的事件

调用Builder的Create()方法创建对话框

调用Builder的show()方法显示对话框

对应代码

public class MainActivity extends AppCompatActivity {
    public void onCreate(Bundle saveInstanceState){
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_main);
        final TextView mytv=(TextView)findViewById(R.id.tv);
        Button btnDelete=(Button)findViewById(R.id.delete);
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        btnDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                builder.setMessage("真的要删除吗?").setPositiveButton("是",new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog,int which){
                        mytv.setText("删除成功!");}
                }).setNegativeButton("否",new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog,int which){
                        mytv.setText("取消删除");
                    }
                });
                AlertDialog ad =builder.create();
                ad.show();
            }
        });
    }
}

对应布局

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">
<TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
<Button
    android:id="@+id/delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="删除"/>
</LinearLayout>

菜单

创建菜单选项:

覆盖activity的onCreateOptionsMenu()方法

调用Menu的add方法添加菜单选项(MenuItem)

当菜单选项被选择时,覆盖activity的onOptionsItemSelected()方法来响应事件

创建上下文菜单

重写activity的onCreateContextMenu()方法,调用menu的add方法添加菜单选项(MenuItem)

重写onCreateItemSelected()方法,响应菜单点击事件

在activity的onCreate()方法中,调用registerForContextMenu()方法,为视图注册上下文菜单

常用的widget组件:按钮、文本框、编辑框、复选框、单选按钮组、下拉列表

ActionBar的主要元素:图标和标题部分、ActionButton、OverFlow、ActionView、Tabs

下一篇第四章 意图(Intent)

猜你喜欢

转载自blog.csdn.net/qq_38900441/article/details/84898005