移动应用开发技术-实验2.1

实验要求:基于线性布局与相对布局,分别实现图 1 所示的用户界面。

采用线性布局或者相对布局实现较为简单,这里我是用线性布局和相对布局嵌套实现的。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请输入基本信息"
            android:id="@+id/ip_port"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/ip_port"
            android:orientation="horizontal"//水平排列
            android:id="@+id/ip_address">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"//一般用sp表示字体大小
                android:text="姓名:"
                />

            <EditText
                android:id="@+id/text_ip"
                android:layout_width="200dp"//一般用dp表示空间大小
                android:layout_height="wrap_content" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/ip_address"
            android:id="@+id/port_number">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="学号:"
                />
            <EditText
                android:id="@+id/text_port"
                android:layout_width="200dp"
                android:layout_height="wrap_content" />
        </LinearLayout>


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/port_number"
            android:id="@+id/ip_sex">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="性别:"
                />
            <RadioGroup    //性别是单选按钮,不是男就是女,所以要用radiogroup
                android:id="@+id/rg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_gravity="center_horizontal">
                <RadioButton
                    android:id="@+id/male"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="男" />
                <RadioButton
                    android:id="@+id/femle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="女"/>
            </RadioGroup>


        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/ip_sex"
            android:id="@+id/interest">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="兴趣爱好:"/>
            <CheckBox   //兴趣爱好可以选择多个,要用多选按钮checkbox
                android:id="@+id/cb01"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="音乐" />
            <CheckBox
                android:id="@+id/cb02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="运动" />
            <CheckBox
                android:id="@+id/cb03"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="游泳" />

            <CheckBox
                android:id="@+id/cb04"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="阅读" />


        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/interest"
            android:id="@+id/zhuanye">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="专业:"/>
            <Spinner    //专业显示需要下拉框来显示
                android:layout_width="300dp"
                android:layout_height="64dp"
                android:entries="@array/专业"
                android:spinnerMode="dialog"/>


        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/zhuanye"
            android:layout_centerHorizontal="true"
            tools:ignore="UnknownId">

        <Button
            android:id="@+id/ConnectPi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"
            android:onClick="Check"
            />
            <TextView
                android:id="@+id/info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20dp"/>

        <Button
            android:id="@+id/reset_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消" />
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

 

package com.example.myapplication1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.RadioButton;
import android.widget.CheckBox;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.ConnectPi);

        Button button1 = (Button) findViewById(R.id.reset_text);
        TextView tv=(TextView)findViewById(R.id.info);
        final EditText et=(EditText)findViewById(R.id.text_ip);//获取姓名信息

        final RadioGroup sex=(RadioGroup) findViewById(R.id.rg);
        final CheckBox music=(CheckBox)findViewById(R.id.cb01);
        final CheckBox yundong=(CheckBox)findViewById(R.id.cb02);
        final CheckBox swim=(CheckBox)findViewById(R.id.cb03);
        final CheckBox read=(CheckBox)findViewById(R.id.cb04);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String Tex=et.getText().toString();//存文本信息
                String Red="";//存单选按钮组信息
                String Com="";//存复选按钮信息
                for(int i=0;i<sex.getChildCount();i++){
                    RadioButton RB=(RadioButton) sex.getChildAt(i);
                    if(RB.isChecked())
                    {
                        Red=RB.getText().toString();
                        //Toast.makeText(MainActivity.this, ""+RB.getText(), Toast.LENGTH_SHORT).show();
                        //tv.setText(RB.getText());
                        break;
                    }
                }
                if(music.isChecked())
                    Com+=music.getText().toString()+" ";
                if(yundong.isChecked())
                    Com+=yundong.getText().toString()+" ";
                if(swim.isChecked())
                    Com+=swim.getText().toString()+" ";
                if(read.isChecked())
                    Com+=read.getText().toString()+" ";
                if(!Tex.equals("")) {
                    Toast.makeText(MainActivity.this, "你好!" + Tex +" "+ "   你的性别:" + Red+" "+" 你的兴趣爱好:"+Com, Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this, "提交失败,请重新输入姓名", Toast.LENGTH_SHORT).show();
                }
            }
        });


    }
}

spinner添加数据资源有很多,我采用了在res文件夹下面的资源目录values里创建了要显示专业的数组,通过entries引用,数组定义如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="专业">
        <item>计算机科学与技术</item>
        <item>大数据</item>
        <item>信息安全</item>
        <item>自动化</item>
        <item>人工智能</item>
    </string-array>

</resources>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值