Android之控件使用

  Android系统为我们提供了大量的控件,例如:开关控件、单选按钮、多选按钮、单选菜单等等,那么这些控件如何使用呢?本篇我将带领大家一道学习一下如何使用这些控件。所谓无图无真相,先让大家看一下效果图:

     

  下面我们就一起学习一下这些控件的使用吧,首先是我们这边效果的布局文件:

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}" >
    <LinearLayout
          android:id="@+id/lative"
          android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FF000000"
        >
    <TextView
        android:id="@+id/Textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        />
    <ProgressBar
        android:id="@+id/Barfirst"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:visibility="gone"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        />

    <ProgressBar
        android:id="@+id/Bartwo"
        android:visibility="gone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/open"
        />
    <CheckBox
        android:id="@+id/reading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/reading"
        />
    <CheckBox
        android:id="@+id/music"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/music"
        />
    <CheckBox
        android:id="@+id/youyong"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/youyong"
        />
    <RadioGroup
        android:id="@+id/radio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <RadioButton
            android:id="@+id/nan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/nan"
            />
        <RadioButton
            android:id="@+id/nv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/nv"
            />
    </RadioGroup>
        <ToggleButton
            android:id="@+id/togbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textOn="@string/biejingquit"
            android:textOff="@string/biejingopen"
            />
    <Button
        android:id="@+id/first"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/xiayiye"
        />
    </LinearLayout>
</RelativeLayout>

  下面是我们的主Activity,为了方便大家拷贝学习,我将各个控件的事件都添加了注释,大家一看应该就能明白,这里就不在赘述。

public class Activityone extends Activity {

    private Button mybutton;//打开进度条按钮
    private Button mybuttonfirst;//普通跳转按钮
    private ProgressBar mybarfirst;//进度条1
    private ProgressBar mybartwo;//进度条2
    private TextView mytext;//文本控件
    private CheckBox reading;//多选按钮
    private CheckBox music;//多选按钮
    private CheckBox youyong;//多选按钮
    private RadioButton nan;//单选按钮
    private RadioButton nv;//单选按钮
    private ToggleButton togbutton;//开关控件
    private LinearLayout lative;//主布局控件
    private int cont = 0;//记录进度条大小

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.All();//设置activity全屏显示
        setContentView(R.layout.activity_one);
        mybutton=(Button)findViewById(R.id.button);
        mybuttonfirst=(Button)findViewById(R.id.first);
        mytext=(TextView)findViewById(R.id.Textview);
        mybarfirst=(ProgressBar)findViewById(R.id.Barfirst);
        mybartwo=(ProgressBar)findViewById(R.id.Bartwo);
        reading=(CheckBox)findViewById(R.id.reading);
        music=(CheckBox)findViewById(R.id.music);
        youyong=(CheckBox)findViewById(R.id.youyong);
        nan=(RadioButton)findViewById(R.id.nan);
        nv=(RadioButton)findViewById(R.id.nv);
        togbutton=(ToggleButton)findViewById(R.id.togbutton);
        lative=(LinearLayout)findViewById(R.id.lative);

        //开关点击事件管理
        togbutton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (togbutton.isChecked()) {
                    lative.setBackgroundColor(0xFFF3F3F3);
                }else{
                    lative.setBackgroundColor(0xFF000000);
                }
            }
        });

        //单选按钮
        nan.setOnClickListener(new myradiobuttonlistener());
        nv.setOnClickListener(new myradiobuttonlistener());

        //进度条开关管理
        mybutton.setOnClickListener(new mybuttonlistener());

        //多选按钮点击事件
        reading.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    Toast.makeText(getApplicationContext(), R.string.reading, Toast.LENGTH_SHORT).show();
                }
            }
        });

        //多选按钮点击事件
        music.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    Toast.makeText(getApplicationContext(), R.string.music, Toast.LENGTH_SHORT).show();
                }
            }
        });

        //多选按钮点击事件
        youyong.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    Toast.makeText(getApplicationContext(), R.string.youyong, Toast.LENGTH_SHORT).show();
                }
            }
        });

        //普通跳转按钮点击事件管理
        mybuttonfirst.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Activityone.this, Activitytwo.class);
                Activityone.this.startActivity(intent);
            }
        });
    }

    //进度条控制
    class mybuttonlistener implements OnClickListener{

        @Override
        public void onClick(View v) {
            if(cont==0){
                mybarfirst.setVisibility(View.VISIBLE);
                mybartwo.setVisibility(0);
                mytext.setText(R.string.addone);
                mybutton.setText(R.string.add);
            }else if(cont<=100){
                mybarfirst.setProgress(cont);
                mybarfirst.setSecondaryProgress(cont+10);
            }else{
                mybarfirst.setProgress(0);
                mybarfirst.setSecondaryProgress(0);
                mybarfirst.setVisibility(View.GONE);
                mybartwo.setVisibility(View.GONE);
                mytext.setText(R.string.hello_world);
                mybutton.setText(R.string.open);
                cont=-10;
            }
            cont+=10;
        }
    }

    //单选点击事件
    class myradiobuttonlistener implements OnClickListener{

        @Override
        public void onClick(View v) {
            RadioButton rb = (RadioButton) v;//获得被点击的控件
            Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show();//rb.getText():得到被点击的选项
        }

    }

    //设置应用全屏显示
    private void All(){
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    //系统菜单(menu菜单)
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 1, 1, R.string.quit);
        menu.add(0, 2, 2, R.string.about);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId()==1){
            //创建一个提示对话框
            AlertDialog.Builder builder = new AlertDialog.Builder(Activityone.this);//获得一个警戒对话框
            builder.setTitle(R.string.menu_quit);
            builder.setMessage(R.string.menu_mager);
            builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            });
            builder.setNegativeButton(R.string.menu_no, null);
            builder.show();
        }
        return super.onOptionsItemSelected(item);
    }

}


  下面为大家介绍一下弹出弹出对话框的知识,还是老一套,先看代码,首先是布局文件:

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}"
    >
    <LinearLayout
        android:orientation="vertical"
        android:id="@+id/lineartwo"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:id="@+id/texttwo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/duihua"
        android:textSize="20dip"
        />
    <Button
        android:id="@+id/buttontwo1"
        android:text="@string/danxuan"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <Button
        android:id="@+id/buttontwo2"
        android:text="@string/duoxuan"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <Button
        android:id="@+id/buttontwo3"
        android:text="@string/liebiao"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <Button
        android:id="@+id/buttontwo4"
        android:text="自定义弹出窗口"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <Button
        android:id="@+id/buttontwo5"
        android:text="@string/xiayiye"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    </LinearLayout>
</RelativeLayout>

  下面是主Activity代码:

public class Activitytwo extends Activity{

    private Button mybutton1;//单选对话框
    private Button mybutton2;//多选对话框
    private Button mybutton3;//列表对话框
    private Button mybutton4;//自定义弹出对话框
    private Button mybutton5;//普通跳转按钮
    private String arr[]={"男","女","少年","青年","中年","老年","已婚","未婚","本科","硕士","博士"};

    private String brr[]={"游泳","听音乐","看书","打电脑游戏","书法","看电视","玩手机","唱歌","旅游","学习"};
    private boolean[] brrs={true,true,false,false,true,false,false,false,false,false};//与brr[]一一对应,true:默认被选择;false:默认不被选择

    private String crr[]={"北京","上海","天津","河南","湖南","湘潭","长沙","武汉","福建","澳门","香港","深圳","广州"};

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

        mybutton1=(Button)findViewById(R.id.buttontwo1);
        mybutton2=(Button)findViewById(R.id.buttontwo2);
        mybutton3=(Button)findViewById(R.id.buttontwo3);
        mybutton5=(Button)findViewById(R.id.buttontwo5);
        mybutton4=(Button)findViewById(R.id.buttontwo4);

        //单选提示对话框
        mybutton1.setOnClickListener(new mybutton1listener());

        //多选提示对话框
        mybutton2.setOnClickListener(new mybutton2listener());

        //下拉提示对话框
        mybutton3.setOnClickListener(new mybutton3listener());

        //自定义弹出对话框
        mybutton4.setOnClickListener(new mybutton4listener());

        //普通跳转按钮
        mybutton5.setOnClickListener(new mybutton5listener());
    }

    //单选事件监听
    class mybutton1listener implements OnClickListener{

        @Override
        public void onClick(View v) {

            AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);
            builder.setTitle(R.string.duoxuan);//设置标题
            builder.setIcon(R.drawable.ic_launcher);//设置图标
            builder.setSingleChoiceItems(arr , 0, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Activitytwo.this, " "+"你选择的是:"+arr[which], Toast.LENGTH_LONG).show();
                    //dialog.dismiss();
                }
            });//设置选择的内容
            builder.setPositiveButton(R.string.menu_yes, null);
            builder.show();
        }
    }

    //多选事件监听
    class mybutton2listener implements OnClickListener{

        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);
            builder.setTitle(R.string.duoxuan);
            builder.setIcon(R.drawable.ic_launcher);
            builder.setMultiChoiceItems(brr, brrs, new DialogInterface.OnMultiChoiceClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    for(int i=0;i<brr.length;i++){
                        if(i==which&&isChecked){
                            Toast.makeText(Activitytwo.this, " "+brr[i], Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
            builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            builder.show();
        }
    }

    //下拉列表事件监听
    class mybutton3listener implements OnClickListener{

        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);
            builder.setTitle(R.string.liebiao);
            builder.setIcon(R.drawable.ic_launcher);
            builder.setItems(crr, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(Activitytwo.this, " "+crr[which], Toast.LENGTH_SHORT).show();
                }
            });
            builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            builder.show();
        }
    }

    class mybutton4listener implements OnClickListener{

        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);

            builder.setTitle("登录窗口");
            builder.setIcon(R.drawable.ic_launcher);

            View login = Activitytwo.this.getLayoutInflater().inflate(R.layout.info, null);//设置弹出窗口的视图
            builder.setView(login);
            final AlertDialog alerrt = builder.create();
            alerrt.show();
            Button button1 = (Button) login.findViewById(R.id.button1);
            button1.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    alerrt.dismiss();
                }
            });
        }
    }

    //普通跳转
    class mybutton5listener implements OnClickListener{

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Activitytwo.this,Activitythree.class);
            Activitytwo.this.startActivity(intent);
        }
    }
}

  好了,关于Android控件使用的知识就为大家分享完毕,内容很简单,如有疑问可以留言讨论。新手学习,高手交流。

时间: 2024-10-25 06:08:07

Android之控件使用的相关文章

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

ArcGIS for Android地图控件的5大常见操作

原文地址: ArcGIS for Android地图控件的5大常见操作 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/7801467   GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS Runtime SDK for

Android 标签控件

版本:1.0 日期:2014.7.24 版权:© 2014 kince 转载注明出处 在有的应用中可能需要设置一些标签来方便用去去查询某些信息,比如手机助手或者购物软件之类都会有一些标签.对于软件开发初期来说,直接使用TextView.Button实现是最为简单的一种方式.但是这种方法也有其局限性,比如不能控制换行.耦合性低等缺点.所以除了解决这些问题之外,最好能够封装一个类库出来,方便以后使用. 首先新建一个Tag类, import java.io.Serializable; public c

[Android]界面控件

1. 引用系统自带样式 字体大小 对于能够显示文字的控件(如TextView EditText RadioButton Button CheckBox Chronometer等等),你有时需要控制字体的大小.Android平台定义了三种字体大小. "?android:attr/textAppearanceLarge" "?android:attr/textAppearanceMedium" "?android:attr/textAppearanceSmal

Android界面编程——Android基本控件

 Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员如何才能开发出友好的图形界面呢.实际上Android提供了非常丰富UI(User Interface)控件,开发者只要掌握了这些控件的特性,按照一定的规律,就可以像堆积木一样开发出友好的图形界面. 本章内容将介绍常用控件的具体用法. 2.1  Android UI的基础知识 Android中所有的

Android常见控件初探

温故而知新.最近复习了一些android常用控件,接下来,根据android 官方API,总结一下它们的一些常见用法.(开发测试环境为Android4.4) 一.TextView 由官方的关系图可以看出,TextView继承View类,直接子类有Button,CheckedTextView等,间接子类有AutoCompleteTextView, CheckBox等. 下面列举一些TextView常见的xml属性: android:text TextView显示的文字 android:textCo

Android 时间控件修改生日

private class TextView_persinal_birth_onClick implements View.OnClickListener {        @Override        public void onClick(View v) {            DatePickerDialog.OnDateSetListener dateSetListener=new DatePickerDialog.OnDateSetListener() {            

Android得到控件在屏幕中的坐标

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =.) getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标 如果在Activity的OnCreate()事件输出那些参数,是全为0,

Android基本控件之Menus

在我们的手机中有很多样式的菜单,比如:我们的短信界面,每条短信,我们长按都会出现一个菜单,还有很多的种类.那么现在,我们就来详细的讨论一下安卓中的菜单 Android的控件中就有这么一个,叫做Menus.就是菜单的意思,他基本分为三种:选项式菜单.上下文菜单.弹出式菜单 我们先来看第一种:选项式菜单 那么什么是选项式菜单呢? 就是当我们点击一个菜单的时候会弹出来一个菜单 如上图所示,右上角的那三个小点 就是菜单按钮,当我们点击时就会弹出一个菜单,这就是一个选项是菜单,既然我们知道是什么东西了,我

Android:控件布局(单帧布局)FrameLayout

FrameLayout:所有控件位于左上角,并且直接覆盖前面的子元素. 实例: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_heig