1、ListView的简单用法

1.1 布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>

1.2 代码

public class MainActivity extends Activity {

private String[] data={"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data);
ListView listView=(ListView)findViewById(R.id.listView1);
listView.setAdapter(adapter);

//处理点击事件
listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String string=data[arg2];
Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
}
});
}

}

2、定制ListView的界面

2.1 新建MyData类,作为ListView适配器的适配类型

public class MyData{
private String dataString;
private int imageId;
public MyData(String dataString,int imageId) {
// TODO Auto-generated constructor stub
this.dataString=dataString;
this.imageId=imageId;
}
public String getDataString() {
return dataString;
}
public int getImageId() {
return imageId;
}
}

2.2 为ListView子项指定自定义布局mydata_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
android:id="@+id/myDataImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>

<TextView
android:id="@+id/myDataString"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:gravity="center" />

</LinearLayout>

2.3 自定义适配器类

public class MyDataAdapter extends ArrayAdapter<MyData>{

private int resourceId;
public MyDataAdapter(Context context,int textViewResourceId,List<MyData> objects){
super(context, textViewResourceId,objects);
resourceId=textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
MyData data=getItem(position);
View view;
if(convertView==null){
view=LayoutInflater.from(getContext()).inflate(resourceId, null);
}
else {
view=convertView;
}
ImageView dataImageView=(ImageView)view.findViewById(R.id.myDataImage);
TextView dataStringTextView=(TextView)view.findViewById(R.id.myDataString);
dataImageView.setImageResource(data.getImageId());
dataStringTextView.setText(data.getDataString());
return view;
}

}

2.4 修改MainActivity代码

public class MainActivity extends Activity {

private List<MyData> dataList=new ArrayList<MyData>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
MyDataAdapter adapter=new MyDataAdapter(MainActivity.this, R.layout.mydata_item, dataList);
ListView listView=(ListView)findViewById(R.id.listView1);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
MyData data=dataList.get(arg2);
Toast.makeText(MainActivity.this, data.getDataString(), Toast.LENGTH_SHORT).show();
}
});
}

private void initData() {
// TODO Auto-generated method stub
MyData one=new MyData("one", R.drawable.one);
MyData two=new MyData("two", R.drawable.two);
MyData three=new MyData("three", R.drawable.three);
MyData four=new MyData("four", R.drawable.four);
MyData five=new MyData("five", R.drawable.five);
MyData six=new MyData("six", R.drawable.six);
MyData seven=new MyData("seven", R.drawable.seven);
MyData eight=new MyData("eight", R.drawable.eight);
MyData nine=new MyData("nine", R.drawable.nine);
dataList.add(one);
dataList.add(two);
dataList.add(three);
dataList.add(four);
dataList.add(five);
dataList.add(six);
dataList.add(seven);
dataList.add(eight);
dataList.add(nine);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

Android学习之ListView使用基础的更多相关文章

  1. Android学习随笔--ListView的分页功能

    第一次写博客,可能格式,排版什么的会非常不美观,不过我主要是为了记录自己的Android学习之路,为了以后能有些东西回顾.既然是为了学习,那我肯定会吸收各位大大们的知道经验,有不足的地方请指出. 通过 ...

  2. Android学习笔记-listview实现方式之BaseAdapter

    listview是Android开发中最为常用的组件,这里我们就学习一下用BaseAdapter的方式实现listview, 主布局activity_main.xml是这样的: <LinearL ...

  3. Android学习笔记——ListView

    该工程的功能是实现在一个activity中显示一个列表 以下代码是MainActivity.java中的代码 package com.example.listview; import java.uti ...

  4. Android学习之——ListView

    背景知识 ListView在Android应用中使用非常广泛,手机上必备的微博.网易新闻等,都使用了ListView.

  5. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

  6. Android学习之listview的下拉刷新、上拉载入

    本例是在上例的基础上完成的.本例实现的listview上拉载入.下拉刷新功能,是在开源网站上别人写好的listview,主要是对listview的控件进行重写,添加了footer和header. 1. ...

  7. Android学习之——ListView下拉刷新

    背景知识 ListView使用非常广泛,对于使用ListView的应用来说,下拉刷新是必不可少要实现的功能. 我们常用的微博.网易新闻,搜狐新闻都使用了这一功能,如下图所示.     微博 搜狐新闻 ...

  8. [Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

    转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类 ...

  9. android学习之ListView

    移通152余继彪 该组件用于显示列表的view  包含了三个关键元素 listView 适配器 以及数据,适配器主要是用于将数据映射到listview,适配器数据主要是有hasmap 配合list对每 ...

随机推荐

  1. iOS-一个弹出菜单动画视图开源项目分享

    相似于Tumblr公布button的弹出视图 使用非常easy: 初始化: @property (nonatomic, strong) XWMenuPopView *myMenuPopView; - ...

  2. js正则表达式实现手机号码,密码正则验证

    手机号码,密码正则验证. 分享下javascript中正则表达式进行的格式验证,常用的有手机号码,密码等. /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,1 ...

  3. 【Unity】5.1 3D坐标系基础知识

    分类:Unity.C#.VS2015 创建日期:2016-04-20 一.简介 在虚拟的游戏世界中,与3D有关的数学知识决定了游戏引擎如何计算和模拟出开发者以及玩家看到的每一帧画面.学习或者回想一下基 ...

  4. LeetCode(35) Search Insert Position

    题目 Given a sorted array and a target value, return the index if the target is found. If not, return ...

  5. HTML5学习笔记(二十四):DOM扩展

    DOM扩展 DOM标准扩展最开始都是来自各个浏览器的自定义扩展DOM的功能,后被收录为标准的DOM相关API. 本笔记只记录被各大浏览器支持的标准扩展,对于特定浏览器的专有扩展不讨论. 选择符API ...

  6. android笔记---LoginActivity extends FinalActivity

    package com.fuda.activity; import java.io.BufferedReader; import java.io.File; import java.io.FileNo ...

  7. c# 除掉前三个字符,剩下的4个字符全为数字方为特殊车辆

    string plate="粤BN1223"; if (plate.Contains("粤BN")) { //除掉前三个字符,剩下的4个字符全为数字方为特殊车辆 ...

  8. adb无线网络调试

    1.如果已经可以用usb连接adb,那么可以通过以下命令切换到无线连接方式. adb tcpip 5555 adb connect 192.168.0.101:5555      通过下面的命令可以切 ...

  9. [Windows Azure] Administering your Windows Azure AD tenant

    Administering your Windows Azure AD tenant 19 out of 20 rated this helpful - Rate this topic Publish ...

  10. 每日英语:How Your Knees Can Predict the Weather

    The Wolff family of Paramus, N.J., was eyeing the gathering clouds and debating whether to cancel a ...