listView页面布局:layout/activity_main.xml:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >


android:id="@+id/lvGenerals"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ccc"
//这是灰色
android:dividerHeight="5dp" >



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 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();
//图片资源集合
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
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

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" >


android:id="@+id/ivThumb"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/baiqi"/>
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"
/>



清单列表:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
package="com.example.day05_01"
android:versionCode="1"
android:versionName="1.0" >


android:minSdkVersion="8"
android:targetSdkVersion="21" />


android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".MainActivity"
android:label="@string/app_name" >







android:name=".ItemGenerals_Activity"
android:label="@string/title_activity_item_generals_" >





各个将军名字:values/strings.xml

<?xml version="1.0" encoding="utf-8"?>



Day05_01
Hello world!
Settings
ItemGenerals_Activity

白起
曹操
成吉思汗
韩信
李世民
努尔哈赤
孙膑
孙武
朱元璋
岳飞


效果:



 

 

更多相关文章

  1. android读取SD卡下面所有的TXT文件名,listView显示出来。
  2. Android顶部用tabLayout和viewPager显示二级分类
  3. Android(安卓)NoTitle 不显示标题
  4. Android开发-WebSocketWssDemo
  5. TabHost
  6. android之CheckBox和Radio
  7. lyricView--歌词显示控件
  8. Android(安卓)出错显示找不到id,但你发现id是存在的
  9. Android开发遇到的问题----自定义RecyclerView Adapter Item 显

随机推荐

  1. 基于Android扫描sd卡与系统文件的介绍
  2. Android窗口抖动之动画实现
  3. 详解Android中实现热更新的原理
  4. android mediarecord 实现暂停断点录音功
  5. android绑定远程服务以及android接口定义
  6. Android(安卓)源代码在线查看
  7. Antrus – 我搞的一个Android下的MVC开源
  8. Android(安卓)5 消息机制源码分析
  9. [原] Android中Scroller类的分析
  10. Android(安卓)AndroidMainifest.xml 中 A