【CheckBox控件的使用】+【MainActivity的多功能切换】

java代码
CheckBox控件–多选项

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

public class CheckBoxActivity extends AppCompatActivity {

    private CheckBox mCb5, mCb6, mCb7;

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

        mCb5 = findViewById(R.id.cb_5);
        mCb6 = findViewById(R.id.cb_6);
        mCb7 = findViewById(R.id.cb_7);

        mCb5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Toast.makeText(CheckBoxActivity.this, isChecked?"mCb5选中":"mCb5未选中", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

重复循环写同样的代码,导致带可读性下降;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

public class CheckBoxActivity extends AppCompatActivity {

    private CheckBox mCb5, mCb6, mCb7;

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

        mCb5 = findViewById(R.id.cb_5);
        mCb6 = findViewById(R.id.cb_6);
        mCb7 = findViewById(R.id.cb_7);

        setCheckedChangedlisteners();
    }

    private void setCheckedChangedlisteners(){
        OnCheckedChanged onCheckedChanged = new OnCheckedChanged();
        mCb5.setOnCheckedChangeListener(onCheckedChanged);
        mCb6.setOnCheckedChangeListener(onCheckedChanged);
        mCb7.setOnCheckedChangeListener(onCheckedChanged);
    }
    private class OnCheckedChanged implements CompoundButton.OnCheckedChangeListener{

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // toast显示功能实现.
            Toast.makeText(CheckBoxActivity.this, isChecked?"选中":"未选中", Toast.LENGTH_SHORT).show();
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv_1"
        android:layout_height="60dp"
        android:layout_width="match_parent"
        android:text="下面说法正确的有"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:gravity="center_vertical"
        android:layout_marginStart="10dp"
        android:padding="5dp"
        />

    <RadioGroup
        android:id="@+id/rg_3"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:paddingLeft="15dp"
        android:layout_below="@+id/tv_1">
        <CheckBox
            android:id="@+id/cb_1"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:text="吸烟有害健康."
            android:textSize="16dp"
            android:paddingEnd="10dp"
            />
        <CheckBox
            android:id="@+id/cb_2"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:text="公共场合禁止吸烟."
            android:textSize="16sp"
            android:paddingEnd="10dp"/>
        <CheckBox
            android:id="@+id/cb_3"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:text="珍爱生命,远离暴力."
            android:paddingEnd="10dp"
            android:textSize="16sp"/>
        <CheckBox
            android:id="@+id/cb_4"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:text="赚钱是王道,为赚钱可不择手段."
            android:paddingEnd="10dp"
            android:textSize="16sp"/>
    </RadioGroup>

    <LinearLayout
        android:id="@+id/line"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="15dp"
        android:layout_marginTop="260dp">

        <TextView
            android:id="@+id/tv_2"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="你的爱好是:"
            android:textSize="20sp"
            android:textStyle="bold"
            android:textColor="@color/black"
            />
        <CheckBox
            android:id="@+id/cb_5"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:button="@drawable/check_box_background"
            android:paddingLeft="10dp"
            android:text="吃饭"
            android:textSize="16sp" />
        <CheckBox
            android:id="@+id/cb_6"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:button="@drawable/check_box_background"
            android:paddingLeft="10dp"
            android:text="睡觉"
            android:textSize="16sp" />
        <CheckBox
            android:id="@+id/cb_7"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:button="@drawable/check_box_background"
            android:paddingLeft="10dp"
            android:text="打豆豆"
            android:textSize="16sp" />
    </LinearLayout>

</RelativeLayout>

(1).文字靠左(右)边界太近在画面中显示效果不佳时可以使用padding操作如:**android:paddingLeft="10dp"**表示勾选框和文字距离10dp
(2).空间和界面之间的距离太近需要隔开距离时,同样通过设置padding实现,区别在于padding的位置在布局中设置.
(3).CheckBox同RadioButton同样默认会出现一个勾选框,如图所示,中方框和圆圈.若不想出现或者自定义如CheckBox你的爱好里那些,可以使用**android:button="@drawable/check_box_background"**实现.若要求无效果**android:button="@null"**;CheckBox
RatioButton其中**check_box_background**的实现是在**drawable**中新建**selector**提前创建.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/ic_baseline_thumb_up_24"/>
    <item android:state_checked="false" android:drawable="@drawable/ic_baseline_thumb_down_alt_24"/>
</selector>

MainActivity的多功能切换:
**android:textAllCaps="false"**非所有字母均大写.
**android:maxLines="1"**最大限制只有一行.

<?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:background="@drawable/background_1"
    android:orientation="vertical">

    <Button
        android:id="@+id/bnt_textview_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" 跳 转 "
        android:maxLines="1"
        android:textColor="@color/black"
        android:textSize="20sp"
        android:layout_marginTop="100dp"
        android:layout_gravity="center"/>
    <Button
        android:id="@+id/rbtn_textview_1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="RaButton"
        android:textColor="@color/black"
        android:textAllCaps="false"
        android:textStyle="bold"
        />
    <Button
        android:id="@+id/Cbnt_textview_1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_margin="20dp"
        android:text="CheckBox"
        android:textAllCaps="false"
        android:textColor="@color/black"
        android:layout_gravity="center"
        />
    <Button
        android:id="@+id/Image_view_1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_margin="0dp"
        android:text="ImageView"
        android:textAllCaps="false"
        android:textColor="@color/black"
        android:layout_gravity="center"
        />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginTop="30dp">

        <Button
            android:id="@+id/bnt_textview_2"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:text="跳转按钮"
            android:textColor="#996671"
            android:background="@drawable/bg_left_bnt"
            android:backgroundTint="#FFFFFF"
            />
        <Button
            android:id="@+id/bnt_textview_3"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:layout_marginStart="10dp"
            android:background="@drawable/bg_right_bnt"
            android:text="旋转按钮"
            style="?android:attr/buttonBarButtonStyle" />
    </LinearLayout>
</LinearLayout>

效果MainActivity使能转换Java实现功能跳转的代码:

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private Button mBnt, mBnt1, mBntEdtext, mBntRationButton;
    private Button mCbnt;
    private Button mIt;

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

        mBnt = findViewById(R.id.bnt_textview_1);
        mBnt1 = findViewById(R.id.bnt_textview_2);
        mBntEdtext = findViewById(R.id.bnt_textview_3);
        mBntRationButton = findViewById(R.id.rbtn_textview_1);
        mCbnt = findViewById(R.id.Cbnt_textview_1);
        mIt = findViewById(R.id.Image_view_1);
        
        mCbnt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = null;
                intent = new Intent(MainActivity.this, ImageViewActivity.class) 
            }
        });
     }
 }

改进后的代码实现:

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private Button mBnt, mBnt1, mBntEdtext, mBntRationButton;
    private Button mCbnt;
    private Button mIt;

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

        mBnt = findViewById(R.id.bnt_textview_1);
        mBnt1 = findViewById(R.id.bnt_textview_2);
        mBntEdtext = findViewById(R.id.bnt_textview_3);
        mBntRationButton = findViewById(R.id.rbtn_textview_1);
        mCbnt = findViewById(R.id.Cbnt_textview_1);
        mIt = findViewById(R.id.Image_view_1);
        }

        private void setListeners(){
            OnClick onClick = new OnClick();
            mBnt.setOnClickListener(onClick);
            mBnt1.setOnClickListener(onClick);
            mBntEdtext.setOnClickListener(onClick);
            mBntRationButton.setOnClickListener(onClick);
            mCbnt.setOnClickListener(onClick);
            mIt.setOnClickListener(onClick);
        }

        private class OnClick implements View.OnClickListener{
            @SuppressLint("NonConstantResourceId")
            @Override
            public void onClick(View v) {
                Intent intent = null;
                switch (v.getId()){
                    case R.id.bnt_textview_1:
                        intent = new Intent(MainActivity.this, TextViewActivity.class);
                        break;
                    case R.id.bnt_textview_2:
                        intent = new Intent(MainActivity.this, ButtonActivity.class);
                        break;
                    case R.id.bnt_textview_3:
                        intent = new Intent(MainActivity.this, EditTextActivity2.class);
                        break;
                    case R.id.rbtn_textview_1:
                        intent = new Intent(MainActivity.this, RationButtonActivity.class);
                        break;
                    case R.id.Cbnt_textview_1:
                        intent = new Intent(MainActivity.this, CheckBoxActivity.class);
                        break;
                    case R.id.Image_view_1:
                        intent = new Intent(MainActivity.this, ImageViewMainActivity.class);
                        break;
                }
                startActivity(intent);
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CheckboxList件是ASP.NET Web Forms中的一个件,用于显示一组复选框,用户可以选择其中的一个或多个选项。 使用CheckboxList件的步骤如下: 1. 在ASP.NET Web Forms页面中添加CheckboxList件。 2. 在代码中设置CheckboxList件的属性,例如DataSource、DataTextField、DataValueField等。 3. 绑定数据到CheckboxList件中,可以使用数据绑定件或手动绑定数据。 4. 在页面中处理CheckboxList件的选择事件,例如在提交表单时获取选中的值。 例如,以下是一个简单的CheckboxList件的示例: ``` <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="ID"></asp:CheckBoxList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT [ID], [Name] FROM [MyTable]"></asp:SqlDataSource> ``` 在代码中,可以使用以下代码获取选中的值: ``` foreach (ListItem item in CheckBoxList1.Items) { if (item.Selected) { string value = item.Value; // 处理选中的值 } } ``` ### 回答2: CheckboxList件在ASP.NET中用于创建多选选项列表,可以在其中选择一个或多个选项。它包含由多个Checkbox组成的集合,显示为单个件。 CheckboxList的用法很简单,只要掌握以下几个步骤: 1. 在Web表单中添加CheckboxList件 可以通过Visual Studio工具箱中的件菜单或手动编写代码来添加一个CheckboxList件。例如,在ASP.NET的Web表单中,可以使用以下代码片段添加件: ``` <asp:CheckBoxList ID="CheckboxList1" runat="server"> <asp:ListItem Text="Apple" Value="0" /> <asp:ListItem Text="Banana" Value="1" /> <asp:ListItem Text="Orange" Value="2" /> </asp:CheckBoxList> ``` 2. 数据绑定 可以通过数据绑定来动态添加选项,数据源可以是数据集,数据表或数据视图等。例如,可以通过以下代码绑定列表: ``` string[] items = {"Red", "Green", "Blue"}; CheckboxList1.DataSource = items; CheckboxList1.DataBind(); ``` 3. 选择项 可以通过在选项列表中选中一个或多个选项来选择项。可以使用以下代码访问选定项: ``` foreach(ListItem item in CheckboxList1.Items) { if (item.Selected) { //选中的项 } } ``` CheckboxList还有很多其他属性和方法,如制显示方式,样式,选择项的默认值等,都可以满足各种复杂的需求。总的来说,CheckboxList件是一个非常有用的件,在多选需求的场景下可以大大提高效率。 ### 回答3: CheckboxList 件是 ASP.NET 中常见的选择件,它用于允许用户从多个选项中选择一个或多个。CheckboxList 件可以方便地用于显示列表和多项选择的输入,因此它被广泛应用于各种 ASP.NET 应用程序中。 使用 CheckboxList 件的步骤如下所示: 第一步:添加 CheckboxList 件 在 ASP.NET Web Forms 应用程序中,可以在 Web 表单中添加 CheckboxList 件。可以通过代码或源代码视图添加 CheckboxList 件。如下所示是在源代码视图中添加 CheckboxList 件的示例: ``` html <asp:CheckBoxList ID="cbList" runat="server"> <asp:ListItem Text="ASP.NET" Value="1"></asp:ListItem> <asp:ListItem Text="C#" Value="2"></asp:ListItem> <asp:ListItem Text="VB.NET" Value="3"></asp:ListItem> </asp:CheckBoxList> ``` 以上代码创建了一个 CheckboxList 件,并在其中添加了三个 ListItem。 第二步:设置 CheckboxList 件属性 在 ASP.NET 应用程序中,CheckboxList 件可以设置多种属性,以制其行为和外观。下面列举了常用的属性: - ID:件的名称,用于标识该件。 - RepeatDirection:指定件中项的布局方向(水平或垂直)。 - DataSource:指定 CheckboxList 件数据源的名称,其可以是一个列表或数据表。 - DataTextField:指定数据源中用作 CheckboxList 件文本的字段名称。 - DataValueField:指定数据源中用作 CheckboxList 件值的字段名称。 通过设置以上属性,我们可以方便地定制 CheckboxList 件的外观和样式。 第三步:获取 CheckboxList 件选中的值 CheckboxList 件在用户选择其中的某些选项时,需要处理其选中状态。通常,开发人员可以在提交表单时,通过使用服务器端代码从 CheckboxList 件中获取选中状态。 下面是获取 CheckboxList 件中选中项的示例代码: ``` csharp foreach (ListItem item in cbList.Items) { if (item.Selected) { string value = item.Value; // 处理选中项的逻辑 } } ``` 此代码示例中,首先使用 foreach 循环遍历所有 CheckboxList 件中的项。通过检查 Selected 属性,判断当前项是否被选中。如果是,则可以获取其值,并执行相应的逻辑。 总结: 在 ASP.NET 应用程序中,使用 CheckboxList 件提供了一种方便的方式,以允许用户从多个选项中进行选择。CheckboxList 件可以方便地与其他 ASP.NET 件配合使用,以创建功能强大且具有交互性的 Web 应用程序。开发人员只需要了解如何添加 CheckboxList 件、设置其属性和获取选中的项即可。如此简单,快速开发的应用程序,让用户体验更加优越。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值