Android中ListView氣泡顯示

1,首先是配置文件:

message_send_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
	<ListView 
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:id="@+id/mms_send_list"
	    android:divider="@android:color/transparent"
	    android:dividerHeight="10dp"
	    >
	</ListView>
</LinearLayout>
說明:不要此文件中配置gravity屬性
message_send_list_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    >
	<LinearLayout 
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    android:gravity="right"
	    >
	    <RelativeLayout 
	        android:layout_width="240dp"
	        android:layout_height="fill_parent"
	        android:gravity="right"
	        >
		    <TextView
		        android:layout_width="wrap_content"
		        android:layout_height="wrap_content"
		        android:id="@+id/message_send_view"
		        android:textSize="20sp"
		        android:textColor="@android:color/black"
		        android:gravity="left"
		        android:paddingLeft="25dp"
		        android:paddingTop="10dp"
		        android:paddingRight="25dp"
		        android:paddingBottom="10dp"
		        android:background="@drawable/send_message1"
		        >    
		    </TextView>
	    </RelativeLayout>
    </LinearLayout>
</LinearLayout>

不要在頂層<LinearLayout>中配置gravity屬性,否則不起作用;在第二層<LinearLayout>中配置gravity爲right,並且在第三層<RelativeLayout>中配置gravity爲right;在第四層<TextView>中配置gravity爲left。這三次配置,一個都不能少。

2,然後是顯示引擎:

MessageActivity.java

package com.hello.storage;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MessageActivity extends Activity {
	private ListView mms_sendListView;
	private ListView mms_receiveListView;
	private TextView mms_sendTextView;
	private TextView mms_receiveTextView;
	List<Map<String, Object>> list;
//	private String[] strs={"A","B","C","D","E","F"};
//	private String[] strs={"A"};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.message_send_list);
		mms_sendListView = (ListView) findViewById(R.id.mms_send_list);
		refreshListItems();
	}

	private void refreshListItems() {
		list = buildListForSimpleAdapter();
		SimpleAdapter notes = new SimpleAdapter(this, list, R.layout.message_send_list_view,
				new String[]{"str"}, new int[] { R.id.message_send_view, });
		mms_sendListView.setAdapter(notes);
		mms_sendListView.setSelection(0);
	}

	private List<Map<String, Object>> buildListForSimpleAdapter() {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(2);
		// Build a map for the attributes
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("str", "你好!");
		list.add(map);

		map = new HashMap<String, Object>();
		map.put("str", "午飯吃了嗎?");
		list.add(map);

		map = new HashMap<String, Object>();
		map.put("str", "今天天氣不錯");
		list.add(map);

		map = new HashMap<String, Object>();
		map.put("str", "午飯很不錯");
		list.add(map);

		map = new HashMap<String, Object>();
		map.put("str", "謝謝");
		list.add(map);

		map = new HashMap<String, Object>();
		map.put("str", "不客氣,下次再來,爲了答謝您的在此光顧,下次決定給予您一定量的優惠");
		list.add(map);
		map = new HashMap<String, Object>();
		map.put("str", "好的,一定會在此光臨的");
		list.add(map);
		return list;
	}

}

3,註解

對Activity做配置之後,即可運行,截圖如下:


存在問題:背景還不是很滿意,希望一塊兒探討。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章