在手机中经常有列表方式。如果Activity中只有唯一一个List(这也是通常的情况),可以继承ListActivity来实现。我们用两个例子来学习List。

List例子一:利用Android自带的List格式

步骤一:Android XML文件

ListActivity是一个全屏的list,如果我们需要定制layout,例如加上一个button之类的什么的,我们需将ListView的id设置为“@android:id/list”,我们可以同getListView来获取ListView的对象,下面是XML的例子:

.... 
<LinearLayout ...> <!-- 在这里我曾忘了设定android:orientation="vertical" ,结果无法显示第二个widget,查了我很久--> 
...<Button … /> <--在这个例子中,我们在加入了一个Button,因此采用定制Layout的方式,即设置@android:id/list  --> 
    <ListView android:id="@android:id/list"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:drawSelectorOnTop="false" /> 
</LinearLayout>

步骤二:源代码

1)使用String数组设置List的item内容

例如:String[] items={"One", "Two", "Three", "Four", "Five"};

2)在onCreate中将item的内容加入,使用setListAdapter并设置List的格式

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));

ArrayAdapter有三个参数,第一是对象,第二是List的格式,第三个是List的内容。对于格式这个例子采用了Android自定义的几种格式,后面会具体列出。android.R.layout.simple_list_item_1是TextView的方式,采用big font,是最为常见的方式。

3)点击List的Callback方法

由于集成了ListActivity,可以直接使用回调函数onListItemClick

4)例子

public class BeginingBook extends ListActivity { 
    String[] items={"One","Two","Three","Four","Five","Six","Serven"}; 
    private Button button; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items)); 
        button =(Button)findViewById(R.id.chapter7); 
    } 
    public void onListItemClick(ListView parent,View v, int position, long id){ 
        button.setText(items[position]); //position是点击的item的序号,从0开始。 
    } 
}

5)不同的呈现模式

我们修改ArrayAdapter的第二个显示的模式。另外可以通过getListView()获取ListView的对象,设置ListView的一些属性,ListView的一些常用方法:setChoiceMode(),getCheckedItemPositions() 。

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,items)); 
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); //表明有选项,如果不设置,缺省为none,即我们点击后仍无反应

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice ,items)); 
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要点击就会触发Callback,而不过是的点击后选上还是变为取消。

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked,items)); 
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

下面,第一个图为android.R.layout.simple_list_item_1,接着依次为上面三种格式。

List例子二:自定义的List格式(来自Tutorial)

步骤一:建立一个描述list item格式的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
           android:id="@+id/rowtv1"  
           android:layout_width="fill_parent"  
           android:layout_height="wrap_content"  
           android:padding="10dip"  
           android:textSize="16dip">  
</TextView>

步骤二:通过XML定义item

在第一个例子中,我们使用String[]来定制item。但是之前,我们也学习到,为了适合多种语言,最要这些信息都在XML文件中定义,只需更换XML文件,就可以适配不同的语言。我们在string.xml文件中增加相关的定义:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    … … 
    <string-array name="countries_arry"> 
        <item>Bharain</item> 
        <item>
Bangladesh</item> 
        <item>Barbados</item> 
        <item>Belarus</item> 
        <item>Belgium</item> 
        <item>Belize</item> 
        <item>Benin</item> 
   </string-array> 
</resources>

步骤三:源代码

public class Chapter7Test2 extends ListActivity{

public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
       String[] contries=getResources().getStringArray(R.array.countries_arry); 
        setListAdapter(new ArrayAdapter<String>(this, R.layout.chapter_7_test2_list, contries)); 
        ListView lv=getListView(); 
        lv.setTextFilterEnabled(true); 
        lv.setOnItemClickListener(new OnItemClickListener(){ 
            public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
                //Toast.makeText(Chapter7Test2.this, ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
                Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
            } 
        });


}

Toast

  上面给出Toast的例子。Toast.makeText(对象,文本内容,格式).show()。

谣言的两个要求

  需要发布的源头和传递的途径。将两个小故事:

  昨天下午,有位同事(今年也30了,研究生毕业,从年龄和学历都是比较成熟了)说收到消息:日本地震是核试验失败导致,她觉得可以信,因为美军在千里之外也受到辐射。听了就知道是谣言,因此日本辐射的时间是核电站发生氢气爆炸的时间一致的,至于美军,地震海啸后,美国就是派两航母过去。开始不明白航母有什么用,后来说航母的直升飞机协助救人。一派老大哥罩这小弟的样子,后来核辐射,两个航母就不知道躲哪里,威威地出来,迅速地闪了。有两个国家没有原子弹,但是有制造原子弹的能力,一个是南非,白人政府在下台之前销毁的核弹,一个是日本,日本核能很发达,能够在短期内生产原子弹。日本目前没有任何理由去制造,这太小看日本的科技技术,也太无视人家的政治智慧,这种做法百害无一利。

  今天最大的谣言就是抢购盐。可能怕海水污染,在苏丹红,三鹿XX,瘦肉精面前如此淡定的我们,有什么可怕呢。实际上中国大部分的盐都是井矿盐,沿海是盐场赚钱还是养殖场赚钱,已经没几个海盐场,所以这些就是借机炒作的无良商贩或者投机倒把的游资行为,这种兴风作浪趁火打劫的行为应给予谴责。

  制造流言的人以最恶毒地心态去制造谣言,并迎合了很多缺乏自我思考能力的狭窄和偏激的历史观和民族观的人。以卑鄙无耻为源头,以愚昧无知为途径,当这两结合起来的时候,非常令人失望,悲观,甚至恐惧。

相关链接: 我的Android开发相关文章

转载于:https://www.cnblogs.com/mzsoft/p/4370462.html

Android学习笔记(十一):Activity-ListView相关推荐

  1. 好记性不如烂笔杆-android学习笔记十一 Service的应用

    23,//Service的应用 <1>//manifest.xml对service注册 <service android:name=".FirstService" ...

  2. Android学习笔记之activity间传递传递参数

    activity间传递值 通过Intent启动另一个activity 传递简单数据(八大基本数据类型+String) 传递简单数据的代码片段 Intent intent = new Intent(Ma ...

  3. Android学习笔记---19_采用ListView实现数据列表显示,以及各种适配器使用,和如何写自己的适配器

      19_采用ListView实现数据列表显示 -------------------------------------------------- ListView显示界面的设置: -------- ...

  4. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  5. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

  6. Android学习笔记(四):在Activity中跳转--Intent的使用

    Android学习笔记(四):在Activity中跳转--Intent的使用 上篇,我们实战了一个很小的项目BMI,通过BMI这个项目,可以很好的理解Activity的程序结构,以方便后面高级API的 ...

  7. Pro Android学习笔记(三三):Menu(4):Alternative菜单

    什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供 ...

  8. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  9. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  10. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

最新文章

  1. NowCoder小定律
  2. Linux下父子进程的全局变量
  3. 腾讯offer是什么样子_记一次腾讯社招前端面试(已拿到offer入职)
  4. Spark写Redis+Spark资源配置总结
  5. Spring MVC入门示例教程--静态页面跳转
  6. Oracle里面的用户user无法登录 LOCKED(TIMED)
  7. 剪映专业版PC端清理缓存与日志
  8. 信息学奥赛一本通 1023:Hello,World!的大小 | OpenJudge NOI 1.2 10
  9. 基于 Vue 的轻量级静态网站生成器 VuePress
  10. findfont: Font family [‘Times New Roman‘] not found. Falling back to DejaVu Sans.
  11. numpy 矩阵拼接_Python实践代码总结第10集(Numpy)
  12. hdu 2037 这个夏天不AC (java)
  13. php正弦函数图像,Go语言输出正弦函数(Sin)图像
  14. CMU 15-213 Introduction to Computer Systems学习笔记(4) Machine-Level Programming-Basic
  15. 学生选课管理系统php,学生选课管理系统(全源代码.doc
  16. 寒假学习报告 第一周 1.18
  17. 用友nc系统服务器端口号,用友NC数据库服务器参数配置说明
  18. c语言两矩阵相乘算法,用c语言实现两个矩阵相乘怎么做?
  19. 【Windows 10 更新失败】Windows10 升级提示错误代码:0x80070020解决方案
  20. 《淘宝技术这十年》 读书笔记

热门文章

  1. 【以太坊】ganache-cli和web3配合,操作以太坊客户端
  2. linux开发教程,Java基础面试题(2)
  3. 【深度学习】神经网络结构搜索(NAS)与多模态
  4. 【Deep Learning笔记】Optic Disc 数据集
  5. python【力扣LeetCode算法题库】1103- 分糖果 II
  6. 【Deep Learning笔记】常用的激活函数
  7. 简易的c语言编译器,实现简易的C语言编译器(part 8)
  8. python生成表格文件_python 读取excel文件生成sql文件实例详解
  9. python time智能等待_python中等待怎么表示
  10. 删除的页面怎么恢复_手机短信删除了怎么恢复?手机短信恢复最新教程