安卓天天练练(十)ListView
ListView不能和ScrollView同时使用,因为它已经包含了滚动支持。
还有个Gallery

http://blog.csdn.net/dazlly/article/details/7863923
居然过期了。。。用HorizontalScrollView代替
package com.narumi.android_12_1; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends Activity {
//所有图片
int [] drawableIds = {
R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.linus,R.drawable.turing
}; int [] msgIds= {
R.string.andy,R.string.bill,R.string.edgar,R.string.linus,R.string.turing
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); ListView lv = (ListView)findViewById(R.id.ListView01); BaseAdapter ba = new BaseAdapter() { @Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
LinearLayout ll=new LinearLayout(MainActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setPadding(5, 5, 5, 5);
ImageView ii = new ImageView(MainActivity.this);
ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0], getTheme()));
ii.setScaleType(ImageView.ScaleType.FIT_XY);
ii.setLayoutParams(new HorizontalScrollView.LayoutParams(100,98));
ll.addView(ii);
TextView tv=new TextView(MainActivity.this);
tv.setText(getResources().getText(msgIds[arg0]));
tv.setTextSize(24);
tv.setTextColor(MainActivity.this.getResources().getColor(R.color.white));
tv.setPadding(5, 5, 5, 5);
tv.setGravity(HorizontalScrollView.FOCUS_LEFT);
ll.addView(tv);
return ll;
} @Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
} @Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
} @Override
public int getCount() {
// TODO Auto-generated method stub
return 5;
}
}; lv.setAdapter(ba); lv.setOnItemSelectedListener(
new OnItemSelectedListener(){ @Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
TextView tView=(TextView)findViewById(R.id.TextView01);
LinearLayout llLayout=(LinearLayout)arg1;
TextView tvn=(TextView)llLayout.getChildAt(1);
StringBuilder sb=new StringBuilder();
sb.append(getResources().getText(R.string.ys));
sb.append(".");
sb.append(tvn.getText());
String stemp=sb.toString();
tView.setText(stemp.split("\\n")[0]);
} @Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub }
}
);
lv.setOnItemClickListener(
new OnItemClickListener(){ @Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
TextView tView=(TextView)findViewById(R.id.TextView01);
LinearLayout llLayout=(LinearLayout)arg1;
TextView tvn=(TextView)llLayout.getChildAt(1);
StringBuilder sb=new StringBuilder();
sb.append(getResources().getText(R.string.ys));
sb.append(".");
sb.append(tvn.getText());
String stemp=sb.toString();
tView.setText(stemp.split("\\n")[0]);
}
}
);
} }
自己P了五张图
 
 
       
 
  图灵小朋友真萌 O(∩_∩)O
由于使用了安卓自带控件,布局文件很简单
<?xml version="1.0" encoding="utf-8"?>
<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:background="@color/black"
android:orientation="vertical"
tools:context="com.narumi.android_12_1.MainActivity" > <TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textColor="@color/white"
android:text="@string/hello"
/> <ListView
android:id="@+id/ListView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/black"
android:choiceMode="singleChoice" /> </LinearLayout>
建立color.xml的时候要注意类型是Color List,下一步的时候可以填生成路径,直接把\color改成 \values
<color name="red">#fd8d8d</color>
<color name="green">#9cfda3</color>
<color name="blue">#8d9dfd</color>
<color name="white">#ffffff</color>
<color name="black">#000000</color>
<color name="gray">#050505</color>
strings一般原来就有
<string name="hello">您选择了</string>
<string name="app_name">ListViewExample</string>
<string name="andy">Andy Rubin \nAndroid的创造者</string>
<string name="bill">Bill Joy \nJava创造者之一</string>
<string name="edgar">Edgr F. Codd \n关系数据库之父</string>
<string name="linus">Linus Torvalds \nLinux之父</string>
<string name="turing">Turing Alan \nIT的祖师爷</string>
<string name="ys">您选择了</string>
此例的效果也就是点一行会再顶部显示与这行同样的信息,java代码有点多有点乱,貌似已经使得HorizontalScrollView与ListView冲突了,待修改(Gallery有毛线用啊)。
安卓天天练练(十)ListView的更多相关文章
- 安卓天天练练(十五)改造BasicSyncAdapter
		
谷歌的官方示例BasicSyncAdapter是Android Studio工程, 把它依样画葫芦到Eclipse上,然后改造成我需要的样式. 看官方示例源码的时候,看到EntryListActivi ...
 - 安卓天天练练(十一)用list绑数据
		
之前在练练ListView的时候就有个 BaseAdapter ba = new BaseAdapter() { 用Adapter来绑数据的方法,该方法中 LinearLayout ll=new Li ...
 - 安卓天天练练(五)CompoundButton
		
ToggleButton 让我想起了从前jQuery还没有取消toggle方法时是怎么偷懒的.. 注意: 如果LinearLayout,与RelativeLayout不同,必须有orientation ...
 - 安卓天天练练(四)drawable state 属性
		
今天又作茧自缚(item 写成 itme ╮(╯▽╰)╭ elipse还自动闭合了标签,来回查查查看报错,为啥点击无效呢!) 真欠抽,怪不得上班地铁上被个sb踢到脚趾头(目测有可能是同家公司的..同站 ...
 - 安卓天天练练(三)常用组件Toast
		
要写几句java package com.narumi.android_7_2; import android.app.Activity; import android.os.Bundle; impo ...
 - 程序员带你学习安卓开发,十天快速入-对比C#学习java语法
		
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
 - My安卓知识2--使用listview绑定sqlite中的数据
		
我想在我的安卓项目中实现一个这样的功能,读取sqlite数据库中的数据并显示到某个页面的listview控件中. 首先,我建立了一个Service类,来实现对数据库的各种操作,然后在这个类中添加对数据 ...
 - 安卓开发ScrollView嵌套ListView只显示一行
		
在用列表控件做一个“更多功能”的界面的时候 <?xml version="1.0" encoding="utf-8"?> <ScrollVie ...
 - WPF入门教程系列二十——ListView示例(二)
		
第四步.WPF后台逻辑代码编写 在后台用Entity Framework 6.1的Code First方式获取数据库中的数据.同时,在“刷新”按钮的方法中进行数据绑定.操作步骤如下: 1) 在“刷新 ...
 
随机推荐
- LayoutInflater的inflate函数用法
			
LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: LayoutInflater inflater=(Layo ...
 - careercup-栈与队列 3.3
			
3.3 栈就像叠盘子,当盘子叠得太高时,就会倾斜倒下.因此,在真实的世界中,当一叠盘子 (栈)超过了一定的高度时,我们就会另起一堆,再从头叠起.实现数据结构SetOfStacks 来模拟这种情况.Se ...
 - NodeJs读取源代码使用的字符集
			
今天用NodeJs写了个简单的客户端/服务器程序,并让客户端向服务器发送汉字.当在Windows上执行客户端时,发现服务器端打印的接收到的数据是乱码.后来发现Windows上的客户端文件的储存编码方案 ...
 - 高性能爬虫为什么使用定制DNS客户端?
			
DNS 解析是高性能网络爬虫的瓶颈,主要是因为: 1. 由于域名服务的分布式的特性,DNS解析可能需要多次的请求转发,有时需要几秒甚至更长的时间来解析出相应的IP 地址. 2. 现有的标准库对DNS解 ...
 - 后缀自动机(SAM)
			
*在学习后缀自动机之前需要熟练掌握WA自动机.RE自动机与TLE自动机* 什么是后缀自动机 后缀自动机 Suffix Automaton (SAM) 是一个用 O(n) 的复杂度构造,能够接受一个字符 ...
 - Spring定时任务,Spring4整合quartz2.2,quartz-scheduler定时任务
			
Spring4整合quartz2.2,quartz-scheduler定时任务,Spring定时任务 >>>>>>>>>>>>& ...
 - fseek()
			
原文地址:fseek()作者:xiaoxin 意思是把文件指针指向文件的开头 fseek 函数名: fseek 功 能: 重定位流上的文件指针 用 法: int fseek(FILE *s ...
 - C#基础加强
			
1.代码规范 -命名规范:定义的变量或者方法名要有意义. 1.骆驼命名 :第一个单词首字母小写,之后的单词首字母大写 userName.userPassword.realName…(普通变量(局部变量 ...
 - 如何获得Windows 8中已记住的WIFI的明文密码
			
网上很流行的一种查看WIFI密码明文的方法,如下: 今天遇到了一种状况,就是如果不连WIFI的情况我能抓到这个密码吗?(实在不想开口问同事密码多少,只能苦逼的自己想办法了o(︶︿︶)o ) 答案当然是 ...
 - 【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)
			
通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 1.建立用户控件Pager.ascx 1.1 html </ASP:LABEL></TD> ...