ListView不能和ScrollView同时使用,因为它已经包含了滚动支持。

还有个Gallery

http://blog.csdn.net/dazlly/article/details/7863923

居然过期了。。。用HorizontalScrollView代替

  1. package com.narumi.android_12_1;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.AdapterView;
  8. import android.widget.AdapterView.OnItemClickListener;
  9. import android.widget.AdapterView.OnItemSelectedListener;
  10. import android.widget.BaseAdapter;
  11. import android.widget.HorizontalScrollView;
  12. import android.widget.ImageView;
  13. import android.widget.LinearLayout;
  14. import android.widget.ListView;
  15. import android.widget.TextView;
  16.  
  17. public class MainActivity extends Activity {
  18. //所有图片
  19. int [] drawableIds = {
  20. R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.linus,R.drawable.turing
  21. };
  22.  
  23. int [] msgIds= {
  24. R.string.andy,R.string.bill,R.string.edgar,R.string.linus,R.string.turing
  25. };
  26.  
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.main);
  31.  
  32. ListView lv = (ListView)findViewById(R.id.ListView01);
  33.  
  34. BaseAdapter ba = new BaseAdapter() {
  35.  
  36. @Override
  37. public View getView(int arg0, View arg1, ViewGroup arg2) {
  38. // TODO Auto-generated method stub
  39. LinearLayout ll=new LinearLayout(MainActivity.this);
  40. ll.setOrientation(LinearLayout.HORIZONTAL);
  41. ll.setPadding(5, 5, 5, 5);
  42. ImageView ii = new ImageView(MainActivity.this);
  43. ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0], getTheme()));
  44. ii.setScaleType(ImageView.ScaleType.FIT_XY);
  45. ii.setLayoutParams(new HorizontalScrollView.LayoutParams(100,98));
  46. ll.addView(ii);
  47. TextView tv=new TextView(MainActivity.this);
  48. tv.setText(getResources().getText(msgIds[arg0]));
  49. tv.setTextSize(24);
  50. tv.setTextColor(MainActivity.this.getResources().getColor(R.color.white));
  51. tv.setPadding(5, 5, 5, 5);
  52. tv.setGravity(HorizontalScrollView.FOCUS_LEFT);
  53. ll.addView(tv);
  54. return ll;
  55. }
  56.  
  57. @Override
  58. public long getItemId(int arg0) {
  59. // TODO Auto-generated method stub
  60. return 0;
  61. }
  62.  
  63. @Override
  64. public Object getItem(int arg0) {
  65. // TODO Auto-generated method stub
  66. return null;
  67. }
  68.  
  69. @Override
  70. public int getCount() {
  71. // TODO Auto-generated method stub
  72. return 5;
  73. }
  74. };
  75.  
  76. lv.setAdapter(ba);
  77.  
  78. lv.setOnItemSelectedListener(
  79. new OnItemSelectedListener(){
  80.  
  81. @Override
  82. public void onItemSelected(AdapterView<?> arg0, View arg1,
  83. int arg2, long arg3) {
  84. // TODO Auto-generated method stub
  85. TextView tView=(TextView)findViewById(R.id.TextView01);
  86. LinearLayout llLayout=(LinearLayout)arg1;
  87. TextView tvn=(TextView)llLayout.getChildAt(1);
  88. StringBuilder sb=new StringBuilder();
  89. sb.append(getResources().getText(R.string.ys));
  90. sb.append(".");
  91. sb.append(tvn.getText());
  92. String stemp=sb.toString();
  93. tView.setText(stemp.split("\\n")[0]);
  94. }
  95.  
  96. @Override
  97. public void onNothingSelected(AdapterView<?> parent) {
  98. // TODO Auto-generated method stub
  99.  
  100. }
  101. }
  102. );
  103. lv.setOnItemClickListener(
  104. new OnItemClickListener(){
  105.  
  106. @Override
  107. public void onItemClick(AdapterView<?> arg0, View arg1,
  108. int arg2, long arg3) {
  109. // TODO Auto-generated method stub
  110. TextView tView=(TextView)findViewById(R.id.TextView01);
  111. LinearLayout llLayout=(LinearLayout)arg1;
  112. TextView tvn=(TextView)llLayout.getChildAt(1);
  113. StringBuilder sb=new StringBuilder();
  114. sb.append(getResources().getText(R.string.ys));
  115. sb.append(".");
  116. sb.append(tvn.getText());
  117. String stemp=sb.toString();
  118. tView.setText(stemp.split("\\n")[0]);
  119. }
  120. }
  121. );
  122. }
  123.  
  124. }

自己P了五张图

  

          图灵小朋友真萌 O(∩_∩)O

由于使用了安卓自带控件,布局文件很简单

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:background="@color/black"
  7. android:orientation="vertical"
  8. tools:context="com.narumi.android_12_1.MainActivity" >
  9.  
  10. <TextView
  11. android:id="@+id/TextView01"
  12. android:layout_width="fill_parent"
  13. android:layout_height="wrap_content"
  14. android:textSize="24sp"
  15. android:textColor="@color/white"
  16. android:text="@string/hello"
  17. />
  18.  
  19. <ListView
  20. android:id="@+id/ListView01"
  21. android:layout_width="fill_parent"
  22. android:layout_height="wrap_content"
  23. android:background="@color/black"
  24. android:choiceMode="singleChoice" />
  25.  
  26. </LinearLayout>

建立color.xml的时候要注意类型是Color List,下一步的时候可以填生成路径,直接把\color改成 \values

  1.    <color name="red">#fd8d8d</color>
  2. <color name="green">#9cfda3</color>
  3. <color name="blue">#8d9dfd</color>
  4. <color name="white">#ffffff</color>
  5. <color name="black">#000000</color>
  6. <color name="gray">#050505</color>

strings一般原来就有

  1. <string name="hello">您选择了</string>
  2. <string name="app_name">ListViewExample</string>
  3. <string name="andy">Andy Rubin \nAndroid的创造者</string>
  4. <string name="bill">Bill Joy \nJava创造者之一</string>
  5. <string name="edgar">Edgr F. Codd \n关系数据库之父</string>
  6. <string name="linus">Linus Torvalds \nLinux之父</string>
  7. <string name="turing">Turing Alan \nIT的祖师爷</string>
  8. <string name="ys">您选择了</string>

此例的效果也就是点一行会再顶部显示与这行同样的信息,java代码有点多有点乱,貌似已经使得HorizontalScrollView与ListView冲突了,待修改(Gallery有毛线用啊)。

安卓天天练练(十)ListView的更多相关文章

  1. 安卓天天练练(十五)改造BasicSyncAdapter

    谷歌的官方示例BasicSyncAdapter是Android Studio工程, 把它依样画葫芦到Eclipse上,然后改造成我需要的样式. 看官方示例源码的时候,看到EntryListActivi ...

  2. 安卓天天练练(十一)用list绑数据

    之前在练练ListView的时候就有个 BaseAdapter ba = new BaseAdapter() { 用Adapter来绑数据的方法,该方法中 LinearLayout ll=new Li ...

  3. 安卓天天练练(五)CompoundButton

    ToggleButton 让我想起了从前jQuery还没有取消toggle方法时是怎么偷懒的.. 注意: 如果LinearLayout,与RelativeLayout不同,必须有orientation ...

  4. 安卓天天练练(四)drawable state 属性

    今天又作茧自缚(item 写成 itme ╮(╯▽╰)╭ elipse还自动闭合了标签,来回查查查看报错,为啥点击无效呢!) 真欠抽,怪不得上班地铁上被个sb踢到脚趾头(目测有可能是同家公司的..同站 ...

  5. 安卓天天练练(三)常用组件Toast

    要写几句java package com.narumi.android_7_2; import android.app.Activity; import android.os.Bundle; impo ...

  6. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  7. My安卓知识2--使用listview绑定sqlite中的数据

    我想在我的安卓项目中实现一个这样的功能,读取sqlite数据库中的数据并显示到某个页面的listview控件中. 首先,我建立了一个Service类,来实现对数据库的各种操作,然后在这个类中添加对数据 ...

  8. 安卓开发ScrollView嵌套ListView只显示一行

    在用列表控件做一个“更多功能”的界面的时候 <?xml version="1.0" encoding="utf-8"?> <ScrollVie ...

  9. WPF入门教程系列二十——ListView示例(二)

    第四步.WPF后台逻辑代码编写 在后台用Entity Framework 6.1的Code First方式获取数据库中的数据.同时,在“刷新”按钮的方法中进行数据绑定.操作步骤如下: 1)  在“刷新 ...

随机推荐

  1. 最简单的自定义适配器adapter

    下面是一个非常简单的自定义适配器的总体源码,从这个源码入门,就可以慢慢学会适配器了 适配器的作用: 完成数据和界面控件的绑定,把数据绑定到界面的现实控件条目上(对于listView,应该是listVi ...

  2. Regular Expressions in Grep Command with 10 Examples --reference

    Regular expressions are used to search and manipulate the text, based on the patterns. Most of the L ...

  3. magic_quotes_runtime(魔术引号开关)

    我们可以通过以下代码来探测php环境中magic_quotes_runtime是否开启: magic_runtime.php 源代码如下: <?php //当magic_quotes_runti ...

  4. iOS中保证线程安全的几种方式与性能对比

    来源:景铭巴巴 链接:http://www.jianshu.com/p/938d68ed832c 一.前言 前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@synchronized. ...

  5. 给自己取了个英文名-Jamy Cai,哈哈~~

    给自己取了个英文名:Jamy Cai, 同时开始启用新邮箱:Jamycai@outlook.com ~~

  6. Linux下搭建Oracle11g RAC(8)----创建ASM磁盘组

    以grid用户创建ASM磁盘组,创建的ASM磁盘组为下一步创建数据库提供存储. ① grid用户登录图形界面,执行asmca命令来创建磁盘组: ② 进入ASMCA配置界面后,单击Create,创建新的 ...

  7. Big Data 應用:第二季(4~6月)台湾地区Game APP 变动分布趋势图

    图表简介: 该示意图表示了台湾地区第二季内所有Game APP类别的分布情形,经由该图表我们可以快速的了解到在这三个月内,哪类型的APP是很稳定:抑或者哪类型的APP是非常不稳定的. 名词解释: 类别 ...

  8. 26、Jquery 基础

    什么是Jquery? Jquery是一套Javascript脚本库. 使用时需要先下载下来,并引用到项目中. 下载地址:http://jquery.com/download/ 目前jquery分为 1 ...

  9. 【转】char码值对应列表大全

    char("56") A char("97") a [转]char码值对应列表大全 Char("0") 为0的字符Char("1& ...

  10. [DEncrypt] HashEncode--哈希加密帮助类 (转载)

    点击下载 HashEncode.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.HashEncode 得到随机哈希加密字符串2.HashEncode 得到一个随机数值3.HashEncod ...