我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android入门(3)Progress

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android入门(3)Progress

一、提要

       今天要学习的是两个稍微复杂一些的控件。

      ProgressBar经常用于文件载入,处理文件,下载等场合。

      ListView用于以列表的形式展示内容。

     最终效果:

     


二、ListView三个元素:

1.ListVeiw 用来展示列表的View。

2.适配器 用来把数据映射到ListView上的中介。

3.数据    具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter

其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。

ProgressBar比较简单,有圆形和长条形。


三、代码:

这里把ProgressBar和ListView放在一个Acivity里了。

MainActivy.java

package com.example.activity_02;  import java.util.ArrayList; import java.util.HashMap; import java.util.Map;  import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog;  import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.SimpleAdapter; import android.widget.Toast;   public class MainActivity extends Activity { 	private ProgressBar myProgressBar1=null; 	private ProgressBar myProgressBar2=null; 	private Button myButton=null; 	private ListView myListView=null;  	private SimpleAdapter myAdapter=null; 	private int i=0;  	@Override 	public void onCreate(Bundle savedInstanceState) { 		super.onCreate(savedInstanceState); 		setContentView(R.layout.activity_main);  		myProgressBar1=(ProgressBar)findViewById(R.id.myProgressBar1); 		myProgressBar2=(ProgressBar)findViewById(R.id.myProgressBar2); 		myButton=(Button)findViewById(R.id.myButton); 		myButton.setOnClickListener(new ButtonListener()); 		myListView = (ListView)findViewById(R.id.myListView);   		//生成动态数组,并且转载数据   		ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();   		for(int i=0;i<10;i++)   		{   			HashMap<String, String> map = new HashMap<String, String>();   			map.put("ItemTitle", "I'm title!");   			map.put("ItemText", "I'm content!I'm content!I'm content!");   			mylist.add(map);   		}   		//生成适配器,数组===》ListItem   		myAdapter= new SimpleAdapter(this, //没什么解释   				mylist,//数据来源    				R.layout.my_listitem,//ListItem的XML实现    				//动态数组与ListItem对应的子项           				new String[] {"ItemTitle", "ItemText"},     				//ListItem的XML文件里面的两个TextView ID   				new int[] {R.id.ItemTitle,R.id.ItemText});  		//添加并且显示   		myListView.setAdapter(myAdapter);   		myListView.setOnItemClickListener(new OnItemClickListenerImpl()); 	}  	@Override 	public boolean onMenuItemSelected(int featureId, MenuItem item) { 		// TODO Auto-generated method stub 		if(item.getItemId()==1) finish(); 		if(item.getItemId()==2) new AlertDialog.Builder(this) .setTitle("About") .setMessage("Powerd By Empty.") .show();   		return super.onMenuItemSelected(featureId, item); 	}  	class ButtonListener implements OnClickListener{  		@Override 		public void onClick(View v) { 			// TODO Auto-generated method stub 			if(i==0) 			{ 				myProgressBar1.setVisibility(View.VISIBLE); 				myProgressBar2.setVisibility(View.VISIBLE); 			} 			else if (i<myProgressBar1.getMax()) 			{ 				myProgressBar1.setProgress(i); 				myProgressBar1.setSecondaryProgress(i+10); 				//默认模式的进度条无法设置状态 				//myProgressBar2.setProgress(i); 			} 			else 			{ 				//myProgressBar1.setVisibility(View.GONE); 				//myProgressBar2.setVisibility(View.GONE); 				i=0; 			} 			i+=10; 			System.out.println("ClickMe"); 		} 	} 	 	private class OnItemClickListenerImpl implements OnItemClickListener {   		@SuppressWarnings("unchecked") 		@Override 		public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  		             //获得选中项的HashMap对象              HashMap<String,String> map=(HashMap<String,String>)myListView.getItemAtPosition(arg2);              String title=map.get("ItemTitle");              String content=map.get("ItemText");              Toast.makeText(getApplicationContext(),                       "你选择了第"+arg2+"个Item,itemTitle的值是:"+title+"itemContent的值是:"+content,                      Toast.LENGTH_SHORT).show();          }  	} } 


<!--my_listitem.xml--> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/myListItem"     android:layout_width="fill_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:paddingBottom="3dip"     android:paddingLeft="10dip" >      <TextView         android:id="@+id/ItemTitle"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:textSize="30dip" >     </TextView>      <TextView         android:id="@+id/ItemText"         android:layout_width="fill_parent"         android:layout_height="wrap_content" >     </TextView>  </LinearLayout>

<!--activity_main.xml--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:orientation="vertical" >      <TextView         android:id="@+id/myTextView"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:text="@string/tip1"         android:textSize="20dp" />      <ProgressBar         android:id="@+id/myProgressBar1"         style="?android:attr/progressBarStyleHorizontal"         android:layout_width="200dp"         android:layout_height="wrap_content"         android:visibility="gone" />      <ProgressBar         android:id="@+id/myProgressBar2"         style="?android:attr/progressBarStyle"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:visibility="gone" />      <Button         android:id="@+id/myButton"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:text="@string/tip2" />      <TextView         android:id="@+id/myTextView2"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:text="@string/tip3"         android:textSize="20dp" />      <ListView         android:id="@+id/myListView"         android:layout_width="wrap_content"         android:layout_height="wrap_content" >     </ListView>  </LinearLayout>



六、参考资料

Android developers:http://developer.android.com/training/basics/firstapp/running-app.html   google的官方教程,非常推荐。

雷一的博客:http://www.cnblogs.com/rayee/tag/Android/ 素然只有四篇,但作为入门教程还是很不错的。

Android 开发教程:网上流传的教程,缺点是有点老。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android入门(3)Progress

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android入门(3)Progress

一、提要        今天要学习的是两个稍微复杂一些的控件。       ProgressBar经常用于文件载入,处理文件,下载等场合。       ListView用于以列表的形式展示内容。      最终效果:       二、L
2023-01-31

Makefile入门(3)

版权所有,转载请注明:本文出自学与思linux编程网接着Makefile入门(2)继续来学习Makefile在前面的例子中,Makefile中的每个目标体都是一个文件,但事实上我们在看别人写得比较正规的Makefile时,我们会发现有些目标
2023-01-31

linux入门教程(3)

(文:flynng)  3.4 进程管理  Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。  在Linux系统
2023-01-31

Django 入门学习(3)

在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。settings.py 默认已经绑定了sqlite3DA
2023-01-31

ARM入门笔记(3)

第三章 点亮我的LED ――I/O输出实验 一.背景 当完成上述实验后,我就可以像使用51单片机那样,在C文件的main()函数中通过设置相应的寄存器来达到对相应外设(如I/O的输入、输出等)的控制目的。 二.实验目的 通过控制PIO的相关
2023-01-31

Linux入门笔记3

一、管理权限和归属1.权限概述文档归属所有者(u):拥有此文件/目录的用户-user所属组(g):拥有此文件/目录的组-group其他用户(o):除所有者、所属组以外的用户-other访问权限读取(r):允许查看内容-read写入(w):允
2023-01-31

mysql轻快入门(3)

有一种情况,你忘记数据库密码啦,你怎么办,砸电脑吗?no.....请见下:select host,user,password from mysql.user;update mysql.user set password=password('
2023-01-31

COM技术入门(3)

(1)COM组件注册卸载与智能指针一COM组件注册和卸载1.Regsvr32.exe命令是用来对"Active控件"进行注册的命令格式注册 Regsvr32 路径/名称.dll  卸载  Regsvr32 /u 路径/名称.dll2.ATL
2023-01-31

3.Python入门到精通

算术操作符+ -*/%**//>>> a = 5>>> a = a + 3>>> a =+ 3>>> b=3>>> b -= 1>>> b2>>> a3>>> a = b = c = d = 10>>> a += 1>>> b -= 3>>
2023-01-31

网络基础入门3

路由路由器的工作原理:1、路由器仅仅关心数据中的 “ 目标IP 地址” ; 2、路由器提取 目标IP地址,与 路由表中的条目进行匹配:如果匹配成功,则转发;如果匹配不成功,则丢弃; 匹配原则:最长匹配原则
2023-01-31

Python3快速入门——(3)dict

#先回忆下列表的操作animals=["cat","dog","rabbit"] #找到list中的某个值(第一种方法)for animal in animals: if(animal=="cat"):
2023-01-31

Python入门3-变量1

1.变量   例:bread = 5, print(bread)则输出5 2.元组(使用“()”进行赋值),赋值后,其值不可以再次修改   可理解为数组   breakfast = ("coffee","tea","eggs")   读取
2023-01-31

Python入门3-变量2

1.字典(使用花括号定义)   dairy_section = {}   dairy_section["breakfast"] = ("break","milk")   dairy_section["lunch"] = ("noodles"
2023-01-31

git入门(3.文件操作)

三、GIT文件操作  版本控制就是对文件的版本控制,对于Linux来说,设备,目录等全是文件,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。文件状态  GIT仓库
2023-01-31

linux 基础学习入门 3

linux day 3第三天内容并不明确, 自我总结内部命令 用 help command   或  man bash外部命令 用 command --help 或  command -h使用手册 man command信息页 info c
2023-01-31

Druid 0.17 入门(3)—— 数据接入指南

在快速开始中,我们演示了接入本地示例数据方式,但Druid其实支持非常丰富的数据接入方式。比如批处理数据的接入和实时流数据的接入。本文我们将介绍这几种数据接入方式。文件数据接入:从文件中加载批处理数据从Kafka中接入流数据:从Kafka中加载流数据Hadoo
Druid 0.17 入门(3)—— 数据接入指南
2015-05-08

Nginx从入门到掌握【(第3节(共3节

目录: 关于Reserve Proxy;ngx_http_proxy_module模块;ngx_http_upstream_module模块;正文: 一、关于Reserve Proxy.Proxy请求过程分为两个阶段:  首先是请求报文从C
2023-01-31

Redis入门(3) - 事务和缓存

事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。事务的使用方式> MULTIOK> SADD key1 1QUEUED> SADD key2 2QUEUED> EXEC1) (integer) 12) (integer)
Redis入门(3) - 事务和缓存
2020-11-05

Gvim入门(3)——简易配置pytho

用Gvim配置python编写环境最重要的也是最基本的一项就是要在Gvim的配置启动文件中,也就是在安装目录下的_vimrc中添加配置python解释器的代码。然而前提是要有配置好环境变量。 总结一下就是: (1)配置环境变量: 将pyth
2023-01-31

python从入门到精通(DAY 3)

要求:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david 12 kevin 123 lin 12
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录