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控件使用的知识就为大家分享完毕,内容很简单,如有疑问可以留言讨论。新手学习,高手交流。

Android之控件使用的更多相关文章

  1. android 基础控件(EditView、SeekBar等)的属性及使用方法

        android提供了大量的UI控件,本文将介绍TextView.ImageView.Button.EditView.ProgressBar.SeekBar.ScrollView.WebView ...

  2. Android基本控件之Menus

    在我们的手机中有很多样式的菜单,比如:我们的短信界面,每条短信,我们长按都会出现一个菜单,还有很多的种类.那么现在,我们就来详细的讨论一下安卓中的菜单 Android的控件中就有这么一个,叫做Menu ...

  3. Android:控件布局(相对布局)RelativeLayout

    RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above-- ...

  4. Android:控件布局(线性布局)LinearLayout

    LinearLayout是线性布局控件:要么横向排布,要么竖向排布 决定性属性:必须有的! android:orientation:vertical (垂直方向) .horizontal(水平方向) ...

  5. 矩阵, 矩阵 , Android基础控件之ImageView

    天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...

  6. Android给控件添加触摸回调

    Android给控件添加触摸回调 脑补一个场景,一个页面点击某个按钮会弹出PopupWindow,然后点击PopupWindow以外的任意位置关闭 效果图 实现方法 可以在布局的最外层容器监听触摸事件 ...

  7. Android 基本控件相关知识整理

    Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户.作为一个程序员如何才能开发出友好的图形界 ...

  8. Github上star数超1000的Android列表控件

    Android开发中,列表估计是最最常使用到的控件之一了.列表相关的交互如下拉刷新,上拉更多,滑动菜单,拖动排序,滑动菜单,sticky header分组,FAB等等都是十分常见的体验.Github中 ...

  9. Android:控件布局(相对布局)RelativeLayout(转)

    相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上android:layout_below ------ ...

  10. 【Android开发日记】之入门篇(十三)——Android的控件解析

    Android的控件都派生自android.view.View类,在android.widget包中定义了大量的系统控件供开发者使用,开发者也可以从View类及其子类中,派生出自定义的控件. 一.An ...

随机推荐

  1. 斯考特·杨(Scott Young)快速学习方法

    上午在网上看到了斯考特·杨(Scott Young)的快速学习方法,感觉很受鼓舞. 现在已经读研究生了,可是发现自己自从上大学以来到现在,发现自己的学习方法有很大的问题. 我是个特别喜欢读书的人,在大 ...

  2. swift-Array(数组)

    Swift 数组用于存储相同类型的值的顺序列表.Swift 要严格检查,不允许不同类型的值在同一个数组中 声明一个数组 var someArray = [SomeType]() var someArr ...

  3. linux终端 字符界面 显示乱码

    方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...

  4. [WPF] 我的WPF自学日记1,无标题窗体拖动

    学习WPF的第一天,尝试写比较常用的功能,无标题窗体拖动. 先在设计界面给它加上MouseDown事件 <Window x:Class="MyFirstWPFAPP.MainWindo ...

  5. >xx.hbm.xml的一些简单配置

    1.在hibernate-mapping的属性里有一个package,它的意思是以下的类都是在这个包下的,下面写类路径的时候,可以不写包名 2.class标签 name属性指的是类 table属性指的 ...

  6. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)

    从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了.1,警告:“xoxoxoxo”  is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换 ...

  7. 如何创建一个Edge 浏览器扩展

    随着微软Windows 10 年度更新的发布,数次延宕的Edge 扩展功能终于得到了官方正式支持.我在我的另外一个博客上发布了如何创建一个Edge 浏览器扩展的博文,链接如下: https://blo ...

  8. ASP.NET关于对excel数据导入到数据库

    //*******************************C#(UI代码)********************************/ Web界面上放一个FileUpload 名称为:F ...

  9. [搜索引擎]Sphinx的介绍和原理探索

    What/Sphinx是什么 定义 Sphinx是一个全文检索引擎. 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI.SphinxQL或者SphinxSE搜索接口 易于 ...

  10. 剑指Offer面试题:5.重建二叉树

    一.题目:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序 ...