Android学习笔记(八)
android中常见空间的使用方法
1.TextView
TextView主要用于在界面上显示一段文本信息,如下面代码所示:
<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/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="24sp" android:textColor="#00ff00" android:text="This is TextView" /> </LinearLayout>
其中,在TextView标签中:
android:id 给当前控件定义了一个唯一标识符;
android:layout_width 指定了控件的宽度,其中match_parent表示当前控件的大小和父布局的大小一样;
android:layout_height 指定了控件的高度,wrap_content表示让当前控件的大小能够刚好包含里面的内容;
android:text 指定了TextView中显示的内容。
android:gravity 来指定文字的对齐方式,可以用“|”来同时指定多个值;
android:textSize 指定TextView中文字的大小;
android:textColor 指定TextView中文字的颜色。
除了上述这些,TextView中还有很多其他的属性。
2.Button
Button是程序用于和用户进行交互的一个重要控件。例如下面的代码定义了一个Button按钮:
<Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button" />
加入Button按钮后,就可以在MainActivity中为Button的点击事件注册一个监听器,代码如下所示:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); } }
注册监听器后,就会执行监听器中的onClick()方法,只需要在这个方法中加入待处理的逻辑就行了。
上面代码给按钮加入监听器中方法是使用匿名类,也可以使用实现接口的方式来注册,代码如下所示:
public class MainActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnclickListener(this); } public void onClick(View v) { switch (v.getId()) { case R.id.button: //在此处添加逻辑 break; default: break; } } }
上述的代码也可以实现对按钮点击事件的监听。
3.EditText
EditText是程序用于和用户进行交互的一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。
在界面中放置一个EditText控件的代码如下所示:
<EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Type something here" android:maxLines="2" />
Android控件的使用基本上用法类似,给控件定义一个id,在指定控件的宽度和高度,然后在加入控件的其它属性就可以了。如:
android:hint 属性是在输入框中显示一些提示性的文字,然后用户输入内容后,这些提示文字就会消失。
android:maxLines 属性是指定EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动。
可以结合EditText和Button来完成一些功能,比如通过点击按钮来获取EditText中输入的内容,代码如下所示:
public class MainActivity extends Activity { private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.edit_text); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String inputText = editText.getText().toString(); Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show(); } }); } }
上面的代码中首先通过findViewById()方法得到EditText的实例,然后在按钮的点击事件里调用EditText的getText()方法
获取到输入的内容,再调用toString()方法转换成字符串,最后使用Toast方法将内容显示出来。
4.ImageView
ImageView是用于在界面上展示图片的一个控件。如下面的代码可以展示drawable文件夹下的ic_launcher.png图片:
<ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />
在程序中还可以通过代码动态地更改ImageView中的图片,代码如下所示:
public class MainActivity extends Activity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.image_view); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //在Button监听器中,调用ImageView的setImageResource()方法修改显示的图片。 imageView.setImageResource(R.drawable.icon); } }); } }
上面的代码中,在按钮的点击事件里通过调用ImageView的setImageResource()方法将显示的图片该成icon。
5.ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们程序正在加载一些数据,ProgressBar的用法如下面的代码所示:
<ProgressBar android:id="@+id/progress_bar" android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:max="100" />"
上面的代码可以在界面上显示进度条,其中style指定了进度条是水平样式的,如果不加style默认是圆形的。
当数据加载完成后,如何使进度条消失呢?这就要用到android控件的可见属性,所有的android控件都有这个属性。
可以通过android:visibility进行指定,可选三种值:
visible表示控件可见性,这个值是默认值;
invisible表示控件不可见性,但它仍然占据着原来的位置和大小;
gone则表示控件不可见性,而且不再占用任何屏幕。
空间的可见性还可以在代码中设置,使用setVisibility()方法,可以传入View.VISIBLE、ViewINVISIBLE和View.GONE。
下面的代码用来设置进度条的可见性:
public class MainActivity extends Activity { private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressBar = (ProgressBar) findViewById(R.id.progress_bar); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //设置进度条的可见性 if (progressBar.getVisibility() == View.GONE){ progressBar.setVisibility(View.VISIBLE); }else { progressBar.setVisibility(View.GONE); } int progress = progressBar.getProgress(); progress = progress + 10; progressBar.setProgress(progress); } }); } }
上面的代码中通过getVisibility()方法来判断ProgressBar是否可见,如果可见就将ProgressBar隐藏掉;
如果不可见就将ProgressBar显示出来。
6.AlertDialog
AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够
屏蔽掉其他控件的交互能力,因此AlertDialog一般用于提示一些非常重要的内容或者警告信息。
AlertDialog用法如下面的代码所示:
/** * AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有 * 界面元素之上的,能够屏蔽掉其他控件的交互能力。 */ //首先通过AlertDialog.Builder创建出一个AlertDialog的实例。 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); //设置标题 dialog.setTitle("This is Dialog"); //设置内容 dialog.setMessage("Something important"); //设置是否可以取消 dialog.setCancelable(false); //调用setPositiveButton()方法为对话框设置确定按钮的点击事件 dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); //调用setNegativeButton()方法为对话框设置取消按钮的点击事件 dialog.setNegativeButton("Cancle", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); //调用show()方法将对话框显示出来 dialog.show();
7.ProgressDialog
ProgressDialog和AlertDialog类似,都可以在界面上弹出一个对话框,屏蔽掉其他控件的交互能力;
不同的是,ProgressDialog会在对话框中显示一个进度条,一般表示比较耗时,让用户耐心等待。
ProgressDialog的用法如下面的代码所示:
/** * ProgressDialog和AlertDialog类似,都是在界面中显示一个对话框。 * 不同的是,ProgressDialog会在对话框中显示一个进度条,一般表示: * 当前的操作比较耗时,让用户耐心等待。 */ //首先构建出一个ProgressDialog对象。 ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); //设置对话框的标题 progressDialog.setTitle("This is ProgressDialog"); //设置内容消息 progressDialog.setMessage("Loading..."); //设置可否取消,如果在setCancelable()中传入了false,表示ProgressDialog不能通过Back键取消, //当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框。 progressDialog.setCancelable(true); //调用show()方法将对话框显示出来 progressDialog.show();
注意:上面的代码中在setCancelable()中传入了true,表示ProgressDialog可以通过Back键取消的;
如果传入了false,表示ProgressDialog不能通过Back取消,当数据加载完成后必须要调用
ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在。
Android学习笔记(八)的更多相关文章
- android学习笔记八——SeekBar
SeekBar——拖动条 拖动条(SeekBar)组件与ProgressBar水平形式的显示进度条类似,不过其最大的区别在于,拖动条可以由用户自己进行手工的调节,例如当用户需要调整播放器音量或者电影的 ...
- Android学习笔记八:用Broadcast Receiver跨进程(跨app)通信
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7515194.html 在前面介绍四大组件的时候提到了可以对外部事件进行过滤的Broadcast Receive ...
- 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...
- 【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们有一篇很好的博文<Andro ...
- 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...
- 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件
目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...
- udacity android 学习笔记: lesson 4 part b
udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- Pro Android学习笔记 ActionBar(1):Home图标区
Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...
- 【转】Pro Android学习笔记(二三):用户界面和控制(11):其他控件
目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chron ...
- 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...
随机推荐
- 读javascript高级程序设计15-Ajax,CORS,JSONP,Img Ping
平时用惯了jQuery.ajax之类的方法,却时常忽略了它背后的实现,本文是学习了AJAX基础及几种跨域解决方案之后的一些收获. 一.AJAX——XMLHttpRequest 谈起Ajax我们都很熟悉 ...
- Android 之 log
android.util.Log常用方法: Log.v() VERBOSE 任何消息都会输出 Log.d() DEBUG 仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DD ...
- 页面路由跳转地址-get方式
从开始敲代码,一直到现在,总是记不太清页面上的路由应该怎样书写,因此最终还是觉得自己应该提笔写下来以免自己再犯同样的错误! 1.get方式访问页面 http://localhost:3001/arti ...
- python语言的优点和缺点
python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路. 龟叔给Python的定位是"优雅"."明确"."简单&qu ...
- Windows Store App 获取文件及文件夹列表
通过使用13.2.1小节给出的方法和属性,不仅可以对用户库中的文件和文件夹进行操作,还可以获取其中所有的文件或者文件夹,比如为了完整地展现整个音乐库,可以获取并列举出音乐库中所有的音乐文件,以便能够在 ...
- 对比Linux系统和Windows系统哪个更好
最近半年来,我一直在读一本叫做<Linux就该这么学>的Linux教材,确实让我进步的很快,也慢慢的让Linux系统走入了我的知识认知中,那么学习前我们来对比下Windows和Linux的 ...
- HDU 4913 Least common multiple(2014 Multi-University Training Contest 5)
题意:求所有自己的最小公倍数的和. 该集合是 2^ai * 3^bi 思路:线段树. 线段树中存的是 [3^b * f(b)] f(b)表示 因子3 的最小公倍数3的部分 为 3^b的个数 ...
- LazyLoad使用注意
今天使用ProgressHUD,进行网络请求后显示加载完成提示框,但是无效,检查以后发现数据源数组使用了懒加载,在调用数组之前调用ProgressHUD里的方法,根本无效啊!以后用懒加载注意.
- Introducing Windows 10 Editions(Windows10版本介绍)
Windows 10将在今年夏天正式发布,今天微软官方博客分享了一些Windows 10版本的细节.详见Introducing Windows 10 Editions Windows 10 HomeW ...
- php大力力 [040节] 买了一天域名,整了一天后台,新网后台不懂啊
php大力力 [040节] 买了一天域名,整了一天后台,新网后台不懂啊]]] 还有万网那些域名要备案,备案,备案中...................wqnmlgb 今天摩托车的前后轮被扎了,tnn ...