listActivity和ExpandableListActivity的简单用法

转载 2012年03月29日 18:37:13

今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。

  首先,先说一下listActivity的用法:

  ListActivity是一个绑定到一个数据源,并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑定与显示,通常会是一个array或者一个拥有查询结果的cursor.ListActivity本身有一个默认的layout,其中包含一个全屏的list。如果用默认的layout,你必须要在onCreate()中注释掉setContentView()那一句。但是如果你如果你想要定制自己的layout你可以创建一个你自己的layout文件,并且在onCreate()中调用setContentView()来指定这个layout.,需要注意的是你自己的layout中必须用到系统给定的id为"@android:id/list"的ListView。

  下面是一个简单的例子,运行结果如下:

activityde 代码如下:

?
package lm.muilThreadDownload;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import lm.muilThreadEntity.DownloadInfo;
import lm.muilThreadService.Downloader;
 
import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
 
public class MuilThreadDownloadActivity extends ListActivity {
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        showListView();//显示listView
    }
 
    private void showListView() {
        List<Map<String, String>> data = new ArrayList<Map<String, String>>();
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "liming.mp3");
        data.add(map);
        map = new HashMap<String, String>();
        map.put("name", "liming2.mp3");
        data.add(map);
        map = new HashMap<String, String>();
        map.put("name", "liming3.mp3");
        data.add(map);
        SimpleAdapter adapter = new SimpleAdapter(this, data,
                R.layout.list_item, new String[] { "name" },
                new int[] { R.id.tv_resouce_name });
        setListAdapter(adapter);
    }
}

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"
    android:id="@+id/mainlayout"
    >
<ListView
    android:id="@android:id/list" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
</LinearLayout>

我们看到,上面的ListView的id用的就是系统自带的"@android:id/list"。

其次,我们也可以不用布局文件,自己定义一个ListView的对象,通过id来获得加载的视图文件。具体代码如下:

?
package lm.mediaPlayer;
 
import android.app.ListActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
 
public class MyMediaPlayerActivity extends ListActivity {
    private ListView listView;
    private ScannerSDCardReceiver receiver;
    private boolean b = false;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        listView = new ListView(this);
        listView.setId(android.R.id.list);//获得listView的id
        setContentView(listView);//加载listView
        showListView();
    }
     
    private void showListView() {//显示listView
        String[] from = {"全部音乐","最近播放音乐"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,from);
        listView.setAdapter(adapter);
    }
}

运行结果如下:

 

最后,我们看一下ExpandableListActivity的用法,开始运行效果图如下:

当我们展开向右的箭头时,效果如下:

我们看到“国家”和“语言”分别是组名,每个组名下面还有很多child(中国,美国),(汉语,英语),其实ExpandableListActivity就是实现这样的功能,能更方便的现实一些列表信息。具体代码如下:

?
package lm.expendablelistAcitivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.widget.SimpleExpandableListAdapter;
//首先继承ExpandableListActivity
public class MyExpendableListActivityActivity extends ExpandableListActivity{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        List<Map<String,String>> list = new ArrayList<Map<String,String>>();//组名
        Map<String,String> map1 = new HashMap<String,String>();
        map1.put("group", "国家");
        Map<String,String> map2 = new HashMap<String,String>();
        map2.put("group", "语言");
        list.add(map1);
        list.add(map2);
         
        List<Map<String,String>> listChild1 = new ArrayList<Map<String,String>>();//child
        Map<String,String> map3 = new HashMap<String,String>();
        map3.put("country", "中国");
        listChild1.add(map3);
        Map<String,String> map4 = new HashMap<String,String>();
        map4.put("country", "美国");
        listChild1.add(map4);
         
        List<Map<String,String>> listChild2 = new ArrayList<Map<String,String>>();//child
        Map<String,String> map5 = new HashMap<String,String>();
        map5.put("country", "汉语");
        listChild2.add(map5);
        Map<String,String> map6 = new HashMap<String,String>();
        map6.put("country", "英语");
        listChild2.add(map6);
         
        List<List<Map<String,String>>> childs = new  ArrayList<List<Map<String,String>>>();//将两个child加入的集合中
        childs.add(listChild1);
        childs.add(listChild2);
        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this, list, R.layout.group, new String[]{"group"},
                new int[]{R.id.tv_group}, childs, R.layout.child, new String[]{"country"}, new int[]{R.id.tv_child});
        setListAdapter(adapter);//适配器
    }
}
?
其中group的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"
    >
<TextView
    android:id="@+id/tv_group" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="60px"
    android:paddingTop="10px"
    android:paddingBottom="10px"
    android:textSize="25sp"
    android:text="无数据"
    />
</LinearLayout>

child的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"
    >
<TextView
    android:id="@+id/tv_child" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="50px"
    android:paddingTop="5px"
    android:paddingBottom="5px"
    android:textSize="20sp"
    android:text="无数据"
    />
</LinearLayout>

好了,以上就是我总结的内容,希望大家多多指教!

相关文章推荐

listActivity和ExpandableListActivity的用法

今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。   首先,先说一下listActivity的用法:   ListActivity是一个绑定到...

ExpandableListActivity用法小结

1,首先必须在布局文件中定义一个ExpandableListView,id为系统提供的@id/android:list 2,其次创建一级条目对应的布局文件group 3,创建二级条目对应的布局文件...

Android之ListView的用法(ListActivity)——系列(7)

转载:http://skyfengfu.diandian.com/post/2012-10-09/40039413744 ListView是安卓部分中,很常用的一个控件,也是很灵活的...

android笔记--简单的listactivity的使用

android笔记--listactivity的使用 1. ListActivity解析 ListActivity的默认布局由一个位于屏幕中心的全屏列表构成。 如果你不想...

Android学习--ListActivity的简单使用以及监听事件

Android中ListActivity的一些简单用法以及监听事件重点内容这里写代码片

android-ListActivity与HashMap的简单使用

package zhang.listActivity; import java.util.ArrayList; import java.util.HashMap; import android.a...

ListView,ListActivity的认识及简单使用

listview简单使用 ListView可以说是android中,最常见得组件了,几乎所有的程序都会用到,由于手机屏幕有限,因此当我们需要展示大量数据的时候,就可借助ListView,ListVie...

SurfaceView的基本用法以及简单实战

  • 2017年10月29日 11:52
  • 15.19MB
  • 下载

语法--动词简单用法讲解

  • 2009年05月01日 11:21
  • 43KB
  • 下载

Android ExpandableListActivity实现可展开的activity

ExpandableListActivity 点击时展开一部分的选项 程序实例 /**  * 此文件是activity主界面中的第二个参数被点击时调用的此文件显示的此类调用的界面  */ p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:listActivity和ExpandableListActivity的简单用法
举报原因:
原因补充:

(最多只允许输入30个字)