[Android Studio]掌握Android Studio的五种常见控件和五种常见布局

一、View和ViewGroup

Android体系中UI的设计采用视图层次的结构。

视图层次: 由View和ViewGroup组成。在创建UI时,开发人员不会真正去创建View或者ViewGroup,而是直接使用Android所提供的具有不同功能的控件,因此通常是看不到View或ViewGroup。

View是Android系统中最基本的组件,同时也是Android所有可视组件的父类,它完成了构建按钮、文本框、时钟等诸多控件的基本功能。此外View还有一个非常重要的子类ViewGroup。
View与ViewGroup的区别:ViewGroup能够容纳多个View作为ViewGroup的子组件,同时View也可以包含ViewGroup作为其子组件,所以View和ViewGroup是相互包容、“你中有我,我中有你”的关系。


wrap_content: 是layout_width和layout_height的属性值之一,表示和自身内容一样的长度。(由内容决定)

match_parent: 是layout_width和layout_height的属性值之一,表示和父组件一样的长度。

fill_parent: 以填充布局单元内尽可能多的空间。

margin属性: 外边距,指当前视图与其他视图间的距离,可以一次性指定上下左右四个外边距值,也可以一次性指定上下左右采用同一个边距值。

android:layout_margin="10dp"

android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"

padding属性: 内边距,指当前视图边距与其内容间的距离。赋值跟margin属性同类型。

android:layout_padding="10dp"

android:layout_paddingTop="10dp"
android:layout_paddingBottom="10dp"
android:layout_paddingLeft="10dp"
android:layout_paddingRight="10dp"

visible属性:

android:visiblity="visible"
android:visiblity="invisible"
android:visiblity="gone"

二、Android的五种常见控件

2.1 文本控件

在Android的体系结构中,TextView和EditView之间是父类和子类的关系。即EditText继承于TextView,因此EditText几乎具备TextView的所有功能,两者之间最大的不同在于:EditText能够支持用户输入,而TextView不能。

2.1.1 TextView


TextView是用于显示文字(字符串)的控件,可在代码中通过设置属性改变文字的大小、颜色、样式等功能。

注意:
颜色值组成(三原色)有三种表示方法

1.#RGB:3位16进制整数,如:#f00

2.#RRGGBB:#00ff00

3.#AARRGGBB:#ff0000ff

2.1.2 EditText


EditText是可以进行编辑操作(用于用户输入和编辑文字或字符的控件)的文本框,将用户信息传递给Android程序。还可以为EditText控件设置监听器,用来测试用户输入的内容是否合法。

2.2 按钮控件

2.2.1 Button

Android的体系结构中Button继承于TextView,而ImageButton继承于ImageView。虽然这两个控件继承于不同的控件,但是Button和ImageButton都是用于完成用户的单击按钮时的onClick事件。


Button是按钮,是用于响应用户的一系列点击事件,使程序更加流畅和完整。

点击事件(监听事件)实现方式(三种):

☞ 实现方式一:

先在layout文件中指定onClick属性:Android:onClick=“click”。然后在Activity中实现这个click方法

public void click (View v){
   
   /// 处理按钮监听事件
}

☞ 实现方式二:在Activity中添加匿名内部类

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


button.setOnClickListener(new View.OnClickListener(){
   
    @Override
    public void OnClick(View v){
   
   /// 处理按钮监听事件
    Log.i("匿名内部类方式","button is clicked");  
    }
});

☞ 实现方式三:

public class MainActivity implements View.OnClickListener
{
   
    //实现接口抽象方法
    public void onClick(View v){
   
    //处理按钮监听事件
    }
}

//在Activity中注册回调接口
button.setOnClickListener(this);
2.2.2 RadioButton


RadioButton为单选按钮,它需要与RadioGroup配合使用,提供两个或多个互斥的选项集。(如男、女)
RadioGroup是单选组合框,可容纳多个RadioButton,并把它们组合在一起,实现单选状态。


RadioButton按钮的实现步骤:

1.先在UI布局文件activity——main.xml中的LinearLayout标签中添加如下代码:

<RadioGroup
   android:id="@+id/radiogroup"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:orientation="horizontal">
   
    <RadioButton
   android:id="@+id/radiobutton1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true"
   android:text="Male"/>
   <RadioButton
   android:id="@+id/radiobutton2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Female"
Android Studio控件乱动可能是由于多种原因引起的,以下是一些可能的解决方法: 1.检查布局文件中的约束条件是否正确,确保控件的位置和大小都被正确地约束。 2.检查是否有其他控件布局文件与当前布局文件发生冲突,可能会导致控件乱动。可以尝试删除其他布局文件或控件,看看是否有所改善。 3.尝试清除缓存并重新启动Android Studio,有时候这可以解决一些奇怪的问题。 4.如果您使用的是旧版本的Android Studio,请尝试升级到最新版本,因为新版本通常会修复一些已知的问题。 5.如果您使用的是自定义控件,请确保它们正确地实现了onMeasure()和onLayout()方法,以确保它们正确地测量和布局。 6.如果您使用的是SQLite数据库,请确保您正确地打开和关闭数据库连接,并正确地处理异常情况。 ```java // 以下是一个使用SQLite数据库的Java代码示例 public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DB_NAME = "my_database.db"; private static final int DB_VERSION = 1; public MyDatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表格等初始化操作 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级数据库等操作 } } // 在代码中使用数据库 MyDatabaseHelper dbHelper = new MyDatabaseHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 执行SQL语句等操作 db.close(); ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值