listView页面布局:layout/activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ListView
android:id="@+id/lvGenerals"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ccc"//这是灰色
android:dividerHeight="5dp" >
</ListView>
</LinearLayout>
listView的java代码:
package com.example.day05_01;
import java.util.ArrayList;
import java.util.List;
import com.litsoft.entity.General;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private List<General> generals;//要显示的数据集合
private ListView lvGenerals;//ListView对象
private BaseAdapter generalAdapt;//适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();//初始化要显示的数据集合、ListView对象、以及适配器
setListener();//设置按item事件
}
private void setListener() {
// TODO Auto-generated method stub
//短按事件监听
lvGenerals.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, generals.get(position).getName()+":被短按 ", 50000).show();
}
});
//长按事件监听
lvGenerals.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, generals.get(position).getName()+":被长按 ", 50000).show();
return true;//1、如果返回false,长按后,他也会触发短按事件2、如果返回true的话,长按后就不会触发短按事件
}
});
}
private void init() {
// TODO Auto-generated method stub
//初始化要显示的数据集合---start
generals = new ArrayList<General>();
//图片资源集合
int[] resImags = {
R.drawable.baiqi,R.drawable.caocao,R.drawable.chengjisihan,
R.drawable.hanxin,R.drawable.lishimin,R.drawable.nuerhachi,
R.drawable.sunbin,R.drawable.sunwu,R.drawable.yuefei,
R.drawable.zhuyuanzhang
};
//将资源中的字符串组数转换为Java数组
String [] names = getResources().getStringArray(R.array.generals);
for (int i =0;i<resImags.length;i++){
General general = new General(resImags[i],names[i]);
generals.add(general);
}
//初始化要显示的数据集合---end
//初始化listView
lvGenerals = (ListView) findViewById(R.id.lvGenerals);
//初始化适配器以及设置该listView的适配器
generalAdapt = new GeneralAdapter();
lvGenerals.setAdapter(generalAdapt);
}
class GeneralAdapter extends BaseAdapter {
//得到listView中item的总数
@Override
public int getCount() {
// TODO Auto-generated method stub
return generals.size();
}
@Override
public General getItem(int position) {
// TODO Auto-generated method stub
return generals.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
//简单来说就是拿到单行的一个布局,然后根据不同的数值,填充主要的listView的每一个item
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//拿到ListViewItem的布局,转换为View类型的对象
View layout = View.inflate(MainActivity.this, R.layout.activity_item_generals_, null);
//找到显示军事家头像的ImageView
ImageView ivThumb = (ImageView) layout.findViewById(R.id.ivThumb);
//找到显示军事家名字的TextView
TextView tvName = (TextView) layout.findViewById(R.id.tvName);
//获取军事中下标是position的军事家对象
General general = generals.get(position);
//显示军事家头像
ivThumb.setImageResource(general.getImageSrc());
//显示军事家的姓名
tvName.setText(general.getName());
return layout;
}
}
}
用于适配的页面布局:layout/activity_item_generals_.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.day05_01.ItemGenerals_Activity" >
<ImageView
android:id="@+id/ivThumb"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/baiqi"/>
<TextView
android:id="@+id/tvName"
android:layout_toRightOf="@id/ivThumb"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:text="白起"
android:layout_marginLeft="25dp"
android:textSize="20sp"
android:gravity="center_vertical"
/>
</RelativeLayout>
清单列表:AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.day05_01"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ItemGenerals_Activity"
android:label="@string/title_activity_item_generals_" >
</activity>
</application>
</manifest>
各个将军名字:values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Day05_01</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="title_activity_item_generals_">ItemGenerals_Activity</string>
<string-array name="generals">
<item>白起</item>
<item>曹操</item>
<item>成吉思汗</item>
<item>韩信</item>
<item>李世民</item>
<item>努尔哈赤</item>
<item>孙膑</item>
<item>孙武</item>
<item>朱元璋</item>
<item>岳飞</item>
</string-array>
</resources>
效果:
相关推荐
本文实例讲述了Android开发实现ListView和adapter配合显示图片和文字列表功能。分享给大家供大家参考,具体如下: 实际效果: 布局文件: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:...
`ListView`通常与适配器(Adapter)配合使用,适配器负责填充数据并将其呈现为列表项。在这个场景中,适配器会加载图片和文字数据,图片可能来自于网络,文字可能是标题或描述。 `TabLayout`则是Android设计支持库...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可定制性使其成为开发者们的首选。本篇文章将深入探讨如何实现ListView的高级显示效果,包括美观大方的设计以及简单实用的交互...
在Android中,ListView通常与Adapter配合使用,Adapter负责填充数据到ListView的各个项。 1. **自定义Adapter**: 要实现微信/QQ风格的设置界面,我们需要创建一个自定义的Adapter,继承自BaseAdapter或ArrayAdapter...
ListView通常与Adapter配合使用,Adapter负责将数据绑定到ListView的各个视图上。 在ListView中实现分页功能,通常会涉及到以下几个关键点: 1. **Adapter的使用**:Adapter是连接ListView与数据源的桥梁。你需要...
ListView通常与Adapter配合使用,Adapter负责将数据源绑定到ListView的各个Item视图上。当数据源为空或未加载时,ListView会显得空白,这并不友好。因此,我们需要为ListView添加特殊的状态布局,来提示用户当前的...
总结来说,这个例子展示了如何在Android应用中利用ListView和BaseAdapter来显示图片和文字列表。BaseAdapter允许开发者灵活地自定义数据结构和视图展示,使得ListView能够适应各种复杂的需求。通过理解这个小例子,...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在实现用户输入关键字搜索时,高亮显示匹配的关键字可以提升用户体验,帮助用户快速定位到他们关心的信息。本篇文章将详细讲解如何在ListView...
例如,通过继承BaseAdapter,重写getView()方法,我们可以为每个ListView项创建自定义布局,添加图片、文字、按钮等各种元素。此外,还可以利用Header和Footer来增加额外的显示内容。 接下来是“不同样式”的...
在Android开发中,ListView通常用于显示垂直列表,但有时我们可能需要实现横向展示的效果,比如在本案例中,目标是创建一个横向的ListView来显示蒙古文。为了实现这个功能,我们需要借助一些特殊的布局和适配器技巧...
`android:drawSelectorOnTop`是ListView的一个样式属性,它决定了当用户点击列表项时,选择器(通常表现为高亮颜色)是在内容之上还是之下显示。这个属性的值可以是`true`或`false`。 - 当`android:...
本篇文章将详细探讨如何实现标题所提及的"Android引导页及主页策划listview",并结合标签"Android"和"guid"的相关知识进行深入解析。 首先,让我们来理解引导页的实现。引导页通常用于在用户首次打开应用时,展示...
1. ListView的基本使用:ListView是Android提供的一个可以滚动显示多个列表项的视图组件,通常配合Adapter使用,Adapter负责将数据转化为列表项并添加到ListView中。 2. Adapter的实现:自定义继承自BaseAdapter的类...
综上所述,实现"Android选择城市列表"不仅需要理解并运用Android的基础组件和数据结构,还需要掌握数据加载、用户交互和性能优化等相关技术。通过合理的编程实践,可以构建出高效且用户友好的城市选择功能。
6. **图片加载库**:由于消息列表中可能包含用户头像,可以使用像Glide或Picasso这样的图片加载库,它们能高效地加载和缓存网络或本地的图片。 7. **通知栏消息**:如果需要模拟实时消息,还需要了解如何使用...
本文将深入探讨如何在Android中结合SQLite事务处理与ListView列表显示功能。 SQLite事务处理是确保数据库操作完整性的重要机制,它遵循ACID(原子性、一致性、隔离性和持久性)原则。在Android中,SQLite的事务处理...
- 自定义Adapter:继承ArrayAdapter,重写getView()方法,将数据绑定到ListView的列表项上。同时,可以添加一个HeaderView,显示26个英文字母,方便用户快速定位。 3. **拼音库**: - 汉字转拼音:由于Java标准库...
在Android开发中,标签(Tag)通常用于组织和标识用户界面元素,以便更好地管理界面内容和交互。Android标签可以是文字、图标或者其他图形元素,它们能够帮助用户理解UI组件的功能或者提供上下文信息。本篇文章将...
在Android开发中,ListView是一种非常常见且重要的组件,它用于展示大量的数据列表,通常与Adapter配合使用以实现数据和视图的绑定。本教程将深入讲解如何使用SimpleAdapter创建一个基础的小程序,来展示一个包含...