• Androiad


    安卓期末复习

    1、项目初步(Test2)

    1.1、部署启动类

    在 main 中创建一个 activity

    image-20220617203051826image-20220617203009377

    将 xml 文件改为 LinearLayout 线性布局

    image-20220617203241309

    指定主启动类image-20220617203410816

    1.2、在主启动类中加入一个按钮 & Toast消息

    (如果在创建 Activity 时没有选择生成对应的 layout 文件)首先在 res 中创建一个 layout 文件夹,在其中新建一个 xml 文件(其为对应的Activitylayout 文件 )

    image-20220617203725912

    在其中加入一个按钮

    image-20220617203744309

    layout 文件与本 acitivity 绑定,使用 setContentView 方法

    image-20220617204013664

    image-20220617204031641

    image-20220617204122731

    1.3、加入 Menu 菜单

    res 文件夹中创建 menu 文件夹,并创建 main.xml

    image-20220617204300977

    加入两个菜单选项image-20220617204338172

    还是在 firstActivity 中创建两个函数第一个将菜单引入到本活动中

    第二函数,负责监听菜单的点击操作,并对每个操作做出相应

    image-20220617204414679

    1.4、(显示)Intent 跳转活动页面

    首先创建一个新的 Activity 这次勾选生成 layout 文件

    我们将 firstActivity 中的 Button 作为跳转页面的触发器

    image-20220617205545524

    1.5、 Intent 传递数据

    我们在跳转的代码中新增一行 putExtra ,传递

    image-20220617210831168

    在接受的活动中,显示出来

    image-20220617210939849

    2、UI 控件(Test3)

    2.1、TextView

    image-20220617212247030

    2.2、Button

    见上文

    2.3、EditText

    输入条

    image-20220617212732233

    通过按钮,显示输入的内容

    image-20220617213653816

    2.4、ImageView

    图片一般都放在以 drawable 开头的目录下

    layout 中引入 ImageView (注意:图片名字不能以数字开头)

    image-20220618184254836

    绑定按钮的点击事件切换 url

    image-20220618184350932

    2.5、LinearLayout

    image-20220618200645276

    3、ListView (Test1)重点!!

    3.1、只有一栏的 ListView

    xml 文件

    image-20220618202323156

    主程序

    image-20220618202437849

    	private String[] data = {"233","232","21231","aad22",
                "232","21231","aad22","232","21231","aad22",
                "232","21231","aad22","232","21231","aad22",
                "232","21231","aad22"};
    
        protected void onCreate(Bundle savedInstanceState) {
            
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_list_item_1,data);j
            ListView viewById = (ListView) findViewById(R.id.listView1);
            viewById.setAdapter(adapter);
    
        }
    

    3.2、ListView 自定义

    4、Exam

    4.1、bean_Account

    package com.example.bean;
    
    public class Account {
        private Long id;
        private String name;
        private Integer balance;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getBalance() {
            return balance;
        }
    
        public void setBalance(Integer balance) {
            this.balance = balance;
        }
    
        @Override
        public String toString() {
            return "Account{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", balance=" + balance +
                    '}';
        }
    
        public Account(String name, Integer balance) {
            this.name = name;
            this.balance = balance;
        }
    
        public Account(Long id, String name, Integer balance) {
            this.id = id;
            this.name = name;
            this.balance = balance;
        }
    }
    

    4.2、dao_AccountDao

    package com.example.dao;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.util.Log;
    
    import com.example.bean.Account;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class AccountDao {
    
        private MyHelper myHelper;
    
        public AccountDao(Context context){
            // 创建Dao时创建Helper;
            Log.d("MyHelper","OnCreateNow");
            myHelper = new MyHelper(context);
            Log.d("MyHelperafter","OnCreate");
        }
    
        // insert
        public void insert(Account account){
            // 读取数据库对象
            SQLiteDatabase db = myHelper.getWritableDatabase();
            // 用阿里装载要插入的数据的Map<列名,列的值>
            ContentValues values = new ContentValues();
            values.put("name",account.getName());
            values.put("balance",account.getBalance());
            // 向 account 插入 数据
            Long id = db.insert("account",null,values);
            account.setId(id);
            db.close();
        }
    
        // delete
        public void delete(Long id){
            SQLiteDatabase db = myHelper.getWritableDatabase();
            db.delete("account","id=?",new String[]{id+""});
           // db.execSQL(sql,new String[]{String.valueOf(id)});
            db.close();
        }
    
        // update
        public void update(Account account){
            SQLiteDatabase db = myHelper.getWritableDatabase();
            ContentValues values=new ContentValues(); //要修改的数据 键值对
            values.put("name",account.getName());
            values.put("balance",account.getBalance());
            db.update("account",values,"id=?",new String[]{ account.getId()+""});
            db.close();
        }
    
        // get All data
    
        public List<Account> queryAll(){
            Log.d("query","all");
            SQLiteDatabase db = myHelper.getWritableDatabase();
            String sql= "select * from account";
            Cursor c = db.rawQuery(sql,null);
            List<Account> list = new ArrayList<Account>();
            while(c.moveToNext()){
                long id = c.getLong(0);
                String name = c.getString(1);
                int balance = c.getInt(2);
                Log.d("query",name);
                list.add(new Account(id,name,balance));
            }
            c.close();
            db.close();
            Log.d("query",list.isEmpty()==true?"kong":"bukong");
            return list;
        }
    
    
    }
    
    

    4.3、dao_MyHelper

    package com.example.dao;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import androidx.annotation.Nullable;
    
    import com.example.bean.Account;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MyHelper extends SQLiteOpenHelper {
    
        public MyHelper(Context context){
            super(context,"product",null,1);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            Log.d("database","OnCreate");
            String sql = "create table account" +
                    "(" +
                    "id integer primary key autoincrement," +
                    "name varchar(20)," +
                    "balance integer" +
                    ")";
            db.execSQL(sql);//id主键,商品名称列,金额列
    //        ContentValues values = new ContentValues();
    //        values.put("name","Hoppz");
    //        values.put("balance",10);
    //        // 向 account 插入 数据
    //        db.insert("acount",null,values);
    //        db.insert("acount",null,values);
    //        db.insert("acount",null,values);
    //
    //        Cursor c = db.query("account",null,
    //                null,null,
    //                null,null,"balance DESC");
    //        List<Account> list = new ArrayList<Account>();
    //        while(c.moveToNext()){
    //            long id = c.getLong(c.getColumnIndex("id"));
    //            String name = c.getString(1);
    //            int balance = c.getInt(2);
    //            list.add(new Account(id,name,balance));
    //        }
    //        for(Account it : list){
    //            Log.d("database",it.getName());
    //        }
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }
    
    

    4.4 、sqllite_MainActivity

    package com.example.sqllite;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.content.Context;
    import android.os.Bundle;
    import android.app.AlertDialog.Builder;
    import android.content.DialogInterface;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.example.bean.Account;
    import com.example.dao.AccountDao;
    
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        // 配合适配器的数据集合
        private List<Account> list;
        // CRUD tool Object
        private AccountDao dao;
        // 输入姓名的 editor
        private EditText nameET;
        // 输入金额的 editor
        private EditText balanceET;
        // 适配器
        private MyAdapter adapter;
        // listView
        private ListView accountLV;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 初始化控件
            initView();
            Log.d("Dao","createPre");
            dao = new AccountDao(this);
            // 从数据库中查询所有数据
            list= dao.queryAll();
            for (Account it : list){
                Log.d("query",it.getName() + "index");
            }
            adapter = new MyAdapter();
            accountLV.setAdapter(adapter);
        }
    
        private void initView()
        {
            accountLV = (ListView) findViewById(R.id.accountLV);
            nameET = (EditText) findViewById(R.id.nameET);
            balanceET = (EditText) findViewById(R.id.balanceET);
        }
    
        public void add(View v){
            String name = nameET.getText().toString().trim();
            String balance = balanceET.getText().toString().trim();
            Log.d("add",name);
            Log.d("add",balance);
    
            if( "".equals(name) || "".equals(balance) ){
                Toast.makeText(MainActivity.this,"商品金额与名称不能为空",Toast.LENGTH_LONG).show();
                return ;
            }
            // 如果 balance 不是空字符串,则进行强制类型转换
            Account a = new Account(name,Integer.parseInt(balance));
            dao.insert(a);
            list.add(a);
            adapter.notifyDataSetChanged();
            accountLV.setSelection(accountLV.getCount()-1);
            // 清空输入
            nameET.setText("");
            balanceET.setText("");
        }
    
    
        //自定义一个适配器(把数据装到ListView的工具)
        private class MyAdapter extends BaseAdapter {
            public int getCount(){   //获取条目总数
                return list.size();
            }
            public Object getItem(int position) //根据位置获取对象
            {
                return  list.get(position);
            }
            public long getItemId(int position) //根据位置获取id
            {
                return  position;
            }
            //获取一个条目视图
            public View getView(int position, View convertView, ViewGroup parent)
            {
                //重用converView
                View item = convertView != null?convertView:View.inflate(getApplicationContext(),R.layout.item,null);
                //获取该视图中的textview
                TextView idTV=(TextView) item.findViewById(R.id.idTV);
                TextView nameTV=(TextView) item.findViewById(R.id.nameTV);
                TextView balanceTV=(TextView) item.findViewById(R.id.balanceTV);
                //根据当前位置获取Account对象
                final Account a = list.get(position);
                //把Account对象中的数据放到textview中
                idTV.setText(a.getId()+"");
                nameTV.setText(a.getName());
                balanceTV.setText(a.getBalance()+"");
                Button upTV=(Button) item.findViewById(R.id.upIV);
                Button downTV=(Button) item.findViewById(R.id.downIV);
                Button deleteTV=(Button) item.findViewById(R.id.deleteIV);
                //向上箭头的事件触发方法
    //            upTV.setOnClickListener(new View.OnClickListener() {
    //                @Override
    //                public void onClick(View v) {
    //                    a.setBalance(a.getBalance()+1);
    //                    notifyDataSetChanged();
    //                    dao.update(a);
    //                }
    //            });
    //            // 向下箭头的事件触发的方法
    //            downTV.setOnClickListener(new View.OnClickListener() {
    //                @Override
    //                public void onClick(View v) {
    //                    a.setBalance(a.getBalance()-1);
    //                    notifyDataSetChanged();
    //                    dao.update(a);
    //                }
    //            });
                // 修改数据
                upTV.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        View dv = View.inflate(getApplicationContext(),R.layout.update, null);
                        final EditText det1 = dv.findViewById(R.id.dialogET1);
                        final EditText det2 = dv.findViewById(R.id.dialogET2);
                        det1.setText(a.getName());
                        det2.setText(a.getBalance().toString());
                        AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
                        //ad.setTitle("修改");
                        ad.setView(dv);
    
                        ad.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int i) {
                                a.setName( det1.getText().toString().trim());
                                a.setBalance(Integer.parseInt(det2.getText().toString().trim()));
                                dao.update(a);
                                notifyDataSetChanged();
                            }
                        });
                        ad.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int i) {
    
                            }
                        });
                        ad.show();
                    }
                });
                //删除图片的点击事件触发的方法
                deleteTV.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //删除数据之前首先弹出一个对话框
                        android.content.DialogInterface.OnClickListener listener=
                                new android.content.DialogInterface.OnClickListener(){
                                    public void onClick(DialogInterface dialog,int which){
                                        list.remove(a);//从集合删除
                                        dao.delete(a.getId());//从数据库删除
                                        notifyDataSetChanged();//刷新界面
                                    }
                                };
                        //创建对话框
                        Builder builder =new Builder(MainActivity.this);
                        builder.setTitle("确定要删除吗?");           //设置标题
                        //设置确定按钮的文本以及监听器
                        builder.setPositiveButton("确定",listener);
                        builder.setNegativeButton("取消",null);
                        builder.show();
                    }
                });
                return item;
            }
        }
    
    
    
    }
    

    4.5、activity_main.xml

    <?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"
        android:orientation="vertical">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <EditText
                android:id="@+id/nameET"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:hint="商品名称"
                android:inputType="textPersonName"/>
    
            <EditText
                android:id="@+id/balanceET"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:hint="金额"
                android:inputType="number"/>
    
            <Button
                android:id="@+id/addIV"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="增加"
                android:onClick="add"/>
    
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="编号"
                android:textColor="#000000"
                android:textSize="20sp"/>
    
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:singleLine="true"
                android:text="名称"
                android:textColor="#000000"
                android:textSize="20sp"/>
    
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:singleLine="true"
                android:text="金额"
                android:textColor="#000000"
                android:textSize="20sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:singleLine="true"
                android:text="操作"
                android:textColor="#000000"
                android:textSize="20sp"/>
        </LinearLayout>
        <ListView
            android:id="@+id/accountLV"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/addLL"/>
    
    </LinearLayout>
    

    4.6、item

    <?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="horizontal"
        android:padding="10dp">
    
        <TextView
            android:id="@+id/idTV"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="13"
            android:textColor="#000000"
            android:textSize="20sp"/>
    
        <TextView
            android:id="@+id/nameTV"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:singleLine="true"
            android:text="PQ"
            android:textColor="#000000"
            android:textSize="20sp"/>
    
        <TextView
            android:id="@+id/balanceTV"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:singleLine="true"
            android:text="12345"
            android:textColor="#000000"
            android:textSize="20sp"/>
    
            <Button
                android:id="@+id/upIV"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="up"
                />
    
            <Button
                android:id="@+id/downIV"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="down"
                />
    
    
        <Button
            android:id="@+id/deleteIV"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:text="删除" />
    
    
    </LinearLayout>
    

    4.7、update.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">
    
        <TextView
            android:id="@+id/dialogTV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="修改信息" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="名称"
                />
    
            <EditText
                android:id="@+id/dialogET1"
                android:layout_width="141dp"
                android:layout_height="wrap_content"
                android:layout_weight="2" />
        </LinearLayout>
    
        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
            <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="金额"
    
                />
    
            <EditText
            android:id="@+id/dialogET2"
            android:layout_width="141dp"
            android:layout_height="wrap_content"
            android:layout_weight="2" />
        </LinearLayout>
    
    </LinearLayout>
    

    9、常用组件函数

    9.1、TextView

    方法 说明
    getText() 获取文本的内容
    setText() 设置文本内容
    setTextSize() 文字框大小
    setTextColor() 文字颜色

    9.2、Button

    Button 按钮的点击事件

    button4.setOnClickListener(new View.OnClickListener() {
      @Override
        public void onClick(View view) {
          ...
        }
    });
    

    10、demo

    10.1、登录页面

    image-20220618205116647

    <?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=".MainActivity2"
        android:orientation="vertical">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="请输入登录信息"
            android:textColor="#00a212"
            android:textSize="18sp"/>
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入账户"/>
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:password="true"/>
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="登录"
            android:color="#fff"
            android:textSize="18dp"
            android:background="#a0a212"/>
    
    </LinearLayout>
    

    10.2、线性布局

    image-20220619132317143

    <?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"
        android:orientation="vertical"
        tools:context=".LayoutTest">
        
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
    
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
            <Button
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2333"
                android:textSize="30sp"
                android:layout_width="match_parent"/>
        </LinearLayout>
    </LinearLayout>
    

    10.3、单选框

    image-20220619151102310

    Activity

    private TextView text1 = findViewById(R.id.textView2);;
    private Button bt = findViewById(R.id.button);;
    private RadioGroup rp = findViewById(R.id.rp);
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_radio_group);
    
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int id = rp.getCheckedRadioButtonId();
                if(id == R.id.plane){
                    text1.setText("选择的是飞机");
                }else if(id == R.id.car){
                    text1.setText("选择的是汽车");
                }else if(id == R.id.train){
                    text1.setText("选择的是火车");
                }
            }
        });
    }
    

    layout

    <?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"
        android:orientation="vertical"
        tools:context=".RadioGroupTest">
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="#ac2333"
            android:textSize="20sp"
            android:text="请选择你的出行方式" />
    
        <RadioGroup
            android:id="@+id/rp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:layout_editor_absoluteX="-11dp"
            tools:layout_editor_absoluteY="16dp">
    
            <RadioButton
                android:id="@+id/train"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="火车" />
    
            <RadioButton
                android:id="@+id/plane"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="飞机" />
    
            <RadioButton
                android:id="@+id/car"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="汽车" />
    
            <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="确定" />
        </RadioGroup>
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="20sp"
            android:text="请选择" />
    
    </LinearLayout>
    
  • 相关阅读:
    NAVICAT 拒绝链接的问题
    .net垃圾回收-原理浅析
    C#中标准Dispose模式的实现
    Windbg调试托管代码
    C#泛型基础
    .Net垃圾回收和大对象处理
    C++ 小知识点
    C++之虚函数表
    C++之指针与引用,函数和数组
    C++之const关键字
  • 原文地址:https://www.cnblogs.com/hoppz/p/16394410.html
Copyright © 2020-2023  润新知