您的位置:首页 > 移动开发 > Android开发

Android之 ListActivity 的使用和在 ListView中添加图片文字(ListActivity与Activity的区别)

2015-08-30 21:00 561 查看
ListActivity简单的说就是ListView和Activity的结合,跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便。但在实现时,有几点要注意。

1、ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。

2、如果想在屏幕中显示其他控件,如文本框和按钮之类,可以采用如下方法:

a、代码中添加:setContentView(R.layout.main)

b、在 main.xml 文件中,添加一个LIstView控件,和一个 TextView 控件,注意它们 id 必须为"@id/android:list"、 "@id/android:empty";前一个表示匹配的ListView,后一个表示若LIstView没有内容则显示的提示:代码如下:

1)main.xml布局文件

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent">

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<EditText android:id="@+id/et_item" android:layout_width="212px"

android:layout_height="wrap_content">

</EditText>

<Button android:id="@+id/bt_add" android:layout_width="83px"

android:layout_height="51px" android:text="添加">

</Button>

</LinearLayout>

<ListView android:id="@id/android:list" android:layout_width="fill_parent"

android:layout_height="0dip" android:layout_weight="1"

android:drawSelectorOnTop="false" />

<TextView android:id="@id/android:empty" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="Can not find the file!" />

</LinearLayout>

下面是程序截图和代码:





LIstView Item的布局文件list_item.xml

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

<LinearLayout android:id="@+id/LinearLayout01"

android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_height="wrap_content">

<ImageView android:layout_width="wrap_content"

android:layout_height="wrap_content" android:id="@+id/ItemImage"
/>

<TextView android:layout_height="wrap_content"

android:textSize="20dip" android:layout_width="fill_parent"

android:id="@+id/ItemTitle"
/>

</LinearLayout>

2)代码:

package com.myandroid.test;

import java.util.ArrayList;

import java.util.HashMap;

import android.app.ListActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.SimpleAdapter;

public class ListActivityImpl extends ListActivity {

private Button bt_add;

private EditText et_item;

private ArrayList<HashMap<String, Object>> listItems; //存放文字、图片信息

private SimpleAdapter listItemAdapter; //适配器

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

bt_add = (Button)findViewById(R.id.bt_add);

et_item = (EditText)findViewById(R.id.et_item);

initListView();

this.setListAdapter(listItemAdapter);

bt_add.setOnClickListener(new ClickEvent());

}

/**

* 设置适配器内容

*/

private void initListView() {

listItems = new ArrayList<HashMap<String, Object>>();

for(int i=0;i<10;i++) {

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("ItemTitle", "Music: "+i); //文字

map.put("ItemImage", R.drawable.music); //图片

listItems.add(map);

}

//生成适配器的Item和动态数组对应的元素

listItemAdapter = new SimpleAdapter(this,listItems, // listItems数据源

R.layout.list_item, //ListItem的XML布局实现

new String[] {"ItemTitle", "ItemImage"}, //动态数组与ImageItem对应的子项

new int[ ] {R.id.ItemTitle, R.id.ItemImage} //list_item.xml布局文件里面的一个ImageView的ID,一个TextView 的ID

);

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

Log.e("position", "" + position);

setTitle("你点击第"+position+"行");

}

class ClickEvent implements OnClickListener {

@Override

public void onClick (View v) {

// 向ListView里添加一项

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("ItemTitle", "Music: "+ et_item.getText().toString());

map.put("ItemImage", R.drawable.music); //每次都放入同样的图片资源ID

listItems.add(map);

//重新设置适配器

ListActivityImpl.this.setListAdapter(listItemAdapter);

}

}

}

这里也涉及到ListView的图片、文字添加方式,本程序是一个图片一行文字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: