一、案例演示

整体线形垂直布局局部相对布局名称、学号、电话使用自定义对话框,性别、爱好分别用单选多选对话学院学习状态下拉框

请添加图片描述

在这里插入图片描述
在这里插入图片描述

二、项目构成

在这里插入图片描述

三、实现代码

1、activity_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/hui"
    android:orientation="vertical"
    tools:context=".MainActivity">
<!--    线性布局1--&gt;
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"&gt;

        <ImageView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="@drawable/left"&gt;</ImageView>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dp"
            android:text="我的信息"
            android:textSize="40dp" />

    </LinearLayout>
<!--线性布局2-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="#ffffff"
        android:orientation="vertical">

        <RelativeLayout
            android:id="@+id/picture"
            style="@style/relativelayout"
            android:layout_marginTop="20dp">

            <TextView
                android:id="@+id/text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="头像"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view1"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"
                android:layout_toLeftOf="@id/imageView1"
                android:background="@drawable/lufei"></TextView>

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="40dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/right" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/username"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="呢称"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView2"
                android:text="坤坤"
                android:textSize="25dp"></TextView>


            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/love" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/student_id"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="学号"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView3"
                android:text="202030120099"
                android:textSize="25dp"></TextView>

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/tree" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/phone"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="电话"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView4"
                android:text="15953613166"
                android:textSize="25dp"></TextView>

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/yao" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>


        <RelativeLayout
            android:id="@+id/sex"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="性别"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView5"
                android:text=""
                android:textSize="25dp"></TextView>

            <ImageView
                android:id="@+id/imageView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/love" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/birthday"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="生日"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView6"
                android:text="2001.9.9"
                android:textSize="25dp"></TextView>

            <ImageView
                android:id="@+id/imageView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/kiss" />

        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/college"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="学院"
                android:textSize="30dp"></TextView>

            <Spinner
                android:id="@+id/spinner_college"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:spinnerMode="dropdown"></Spinner>


        </RelativeLayout>
    </LinearLayout>
<!--    线性布局3-->
    <LinearLayout
        android:layout_marginTop="20dp"
        android:background="#ffffff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <RelativeLayout
            android:id="@+id/holiday"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="学习状态"
                android:textSize="30dp"></TextView>

            <Spinner
                android:id="@+id/spinner_holiday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:spinnerMode="dialog"></Spinner>
        </RelativeLayout>

        <TextView style="@style/line"></TextView>

        <RelativeLayout
            android:id="@+id/hobby"
            style="@style/relativelayout">

            <TextView
                android:id="@+id/text9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="爱好"
                android:textSize="30dp"></TextView>

            <TextView
                android:id="@+id/view9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_toLeftOf="@id/imageView9"
                android:text=""
                android:textSize="25dp"></TextView>

            <ImageView
                android:id="@+id/imageView9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                app:srcCompat="@drawable/love" />

        </RelativeLayout>


    </LinearLayout>

</LinearLayout>

2、MainActivity.java

package com.example.information;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private List<Map<String,Object>> data;//一个集合

    //查看头像
    private RelativeLayout picture;
    //名称
    private RelativeLayout username;
    private TextView view2;
    //学号
    private RelativeLayout student_id;
    private TextView view3;
    //修改手机号
    private RelativeLayout phone;
    private TextView view4;
    //选择性
    private RelativeLayout sex;
    private TextView view5;
    //生日
    private RelativeLayout birthday;
    private TextView view6;
    //学院
    private RelativeLayout college;
    private Spinner spinner;
    //状态
    private RelativeLayout holiday;
    private Spinner spinner2;
    //爱好
    private RelativeLayout hobby;
    private TextView view9;

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

        initView();
    }
    public void initView(){
        //找到对应控件
        picture=findViewById(R.id.picture);

        username=findViewById(R.id.username);
        view2=findViewById(R.id.view2);

        student_id=findViewById(R.id.student_id);
        view3=findViewById(R.id.view3);

        phone=findViewById(R.id.phone);
        view4=findViewById(R.id.view4);

        sex=findViewById(R.id.sex);
        view5=findViewById(R.id.view5);

        birthday=findViewById(R.id.birthday);
        view6=findViewById(R.id.view6);

        college=findViewById(R.id.college);
        spinner=findViewById(R.id.spinner_college);

        holiday=findViewById(R.id.holiday);
        spinner2=findViewById(R.id.spinner_holiday);

        hobby=findViewById(R.id.hobby);
        view9=findViewById(R.id.view9);
        //设置事件监听
        picture.setOnClickListener(this);
        username.setOnClickListener(this);
        student_id.setOnClickListener(this);
        phone.setOnClickListener(this);
        sex.setOnClickListener(this);
        birthday.setOnClickListener(this);
        college.setOnClickListener(this);
        holiday.setOnClickListener(this);
        hobby.setOnClickListener(this);
        //学院选择
        String arr[]=new String[]{"智慧学院","教育学院","艺术学院"};

        ArrayAdapter a=new ArrayAdapter(this,R.layout.textsize,arr);

        spinner.setAdapter(a);
        //状态选择
        data = new ArrayList<>();

        SimpleAdapter adapter = new SimpleAdapter(this, getDat(), R.layout.item_spinner,
                new String[]{"image", "text"}, new int[]{R.id.img, R.id.tvv});

        spinner2.setAdapter(adapter);

    }

    private List<Map<String,Object>> getDat() {
        Map<String, Object> map = new HashMap<>();
        map.put("image", R.drawable.dujia);
        map.put("text", "度假中");
        data.add(map);
        Map<String, Object> map1 = new HashMap<>();
        map1.put("image", R.drawable.kiss);
        map1.put("text", "工作中");
        data.add(map1);
        Map<String, Object> map2 = new HashMap<>();
        map2.put("image", R.drawable.yao);
        map2.put("text", "会议中");
        data.add(map2);
        Map<String, Object> map3 = new HashMap<>();
        map3.put("image", R.drawable.tree);
        map3.put("text", "出差中");
        data.add(map3);
        return data;
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.picture:
                text1();break;
            case R.id.username:
                text2();break;
            case R.id.student_id:
                text3();break;
            case R.id.phone:
                text4();break;
            case R.id.sex:
                text5();break;
            case R.id.birthday:
                text6();break;
            case R.id.hobby:
                text9();break;
        }
    }
}
item_spinner.xml

设置图片布局,修改状态时用到

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_margin="5dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:background="@mipmap/ic_launcher"
        android:id="@+id/img"
        android:layout_width="40dp"
        android:layout_height="40dp"
        />
    <TextView
        android:layout_marginLeft="10dp"
        android:layout_gravity="center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="度假中"
        android:textSize="23sp"
        android:id="@+id/tvv"
        />
</LinearLayout>
textSize.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="25dp"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:minHeight="?android:attr/listPreferredItemHeightSmall" />
2.1、text1() 查看头像

在这里插入图片描述

//查看头像
    public void text1(){
        //获取内容
        View layout =View.inflate(this,R.layout.dialog_picture,null);
        //创建对象
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        //修改标题
        b.setTitle("查看头像");
        //赋值内容设置窗口
        b.setView(layout);
        //修改
        b.setPositiveButton("确定",null);
        b.setNegativeButton("取消",null);
        b.show();
    }
2.1.1、dialog_picture.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/view1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"
        android:background="@drawable/lufei"></TextView>
</RelativeLayout>
2.2、text2() 修改名称

在这里插入图片描述

 //修改名称
    public void text2(){
        //获取内容
        View layout =View.inflate(this,R.layout.dialog_username,null);
        //创建对象
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        //修改标题
        b.setTitle("修改名称");
        //赋值内容设置窗口
        b.setView(layout);
        //修改
        b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                EditText update=layout.findViewById(R.id.view2);

                String newName=update.getText().toString().trim();
                //设置数据
                view2.setText(newName);
            }
        });
        b.setNegativeButton("取消",null);

        b.show();
    }
2.2.1、dialog_username.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:text="坤坤"
        android:textSize="25dp"></EditText>
</RelativeLayout>
2.3、text3() 修改学号
 //修改学号
    public void text3(){
        //获取内容
        View layout =View.inflate(this,R.layout.dialog_student_id,null);
        //创建对象
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        //修改标题
        b.setTitle("修改学号");
        //赋值内容设置窗口
        b.setView(layout);
        //修改
        b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                EditText update=layout.findViewById(R.id.view3);

                String newId=update.getText().toString().trim();
                //设置数据
                view3.setText(newId);
            }
        });
        b.setNegativeButton("取消",null);

        b.show();
    }
2.3.1、dialog_student_id.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
        android:id="@+id/view3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:text="202030120099"
        android:textSize="25dp"></EditText>
</RelativeLayout>
2.4、text4() 修改手机号
 //修改手机号
    public void text4(){
        //获取内容
        View layout =View.inflate(this,R.layout.dialog_phone,null);
        //创建对象
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        //修改标题
        b.setTitle("修改手机号");
        //赋值内容设置窗口
        b.setView(layout);
        //修改
        b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                EditText update=layout.findViewById(R.id.view4);

                String newPhone=update.getText().toString().trim();
                //设置数据
                view4.setText(newPhone);
            }
        });
        b.setNegativeButton("取消",null);
        b.show();
    }
2.4.1、dialog_phone.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/view4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:text="15953613166"
        android:textSize="25dp"></EditText>
</RelativeLayout>
2.5、text5() 性别选择

在这里插入图片描述

 //性别选择
    public void text5(){
        String arr[] ={"男","女"};
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        b.setTitle("选择性别");
        b.setSingleChoiceItems(arr, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                view5.setText(arr[which]);
                dialog.dismiss();
            }
        });
        b.show();
    }
2.6、text6() 生日选择

在这里插入图片描述

//生日选择
    public void text6(){
        //获取日期
        Calendar c= Calendar.getInstance();

        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH);
        int day=c.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog d=new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener(){

            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                view6.setText(year+"."+month+"."+dayOfMonth);
            }
        },year,month,day);
        d.show();
    }
2.7、text9() 爱好选择

在这里插入图片描述

//爱好
    public void text9(){
        ArrayList<Integer> list=new ArrayList();
        String arr[]={"唱","跳","rap","篮球"};
        boolean fff[]={false,false,false,false};
        AlertDialog.Builder b=new AlertDialog.Builder(this);
        b.setTitle("爱好选择");
        b.setMultiChoiceItems(arr, fff, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                if(isChecked){
                    list.add(which);
                }else {
                    list.remove(which);
                }
            }
        });
        b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String str="";
                for(int i=0;i<list.size();i++){
                    str += arr[list.get(i)]+"";
                }
                view9.setText(str);
            }
        });
        b.setNegativeButton("取消",null);
        b.show();
    }

3、styles.xml

共用的资源

<resources>

<!--相对布局格式-->
    <style name="relativelayout">
        <item name="android:layout_height">0dp</item>
        <item name="android:layout_weight">1</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_marginLeft">20dp</item>
        <item name="android:layout_marginRight">20dp</item>
    </style>
<!--下划线-->
    <style name="line">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">1dp</item>
        <item name="android:layout_marginRight">20dp</item>
        <item name="android:layout_marginLeft">20dp</item>
        <item name="android:background">@color/black</item>
    </style>

</resources>

原文地址:https://blog.csdn.net/qq_52108058/article/details/126910069

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_21714.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注