正在做一个Android的课程设计,主要功能是任务管理器,需要用到ActivityManager,所以就拿这个类来当作ListView的练习了。

本次的任务是将所有正在运行的进程添加到ArrayAdapter适配器,并在ListView中显示出来。


布局文件很简单,只有一个refresh按钮和一个ListView。

activity_main.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"    tools:context=".MainActivity" >    <ListView        android:id="@+id/myListView1"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_above="@+id/refresh"         />    <Button        android:id="@id/refresh"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="refresh"        android:layout_alignParentBottom="true"/></RelativeLayout>



主活动MainActivity.java

package com.xujin.listviewtest;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity  {    private Button refresh;    private ListView proList;    private ArrayAdapter<String> arrayAdapter;    private ArrayList<String> arrayListPro;    private ActivityManager myActivityManager;    @Override    public void onCreate(Bundle savedInstanceState)    {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);       refresh = (Button)findViewById(R.id.refresh);      proList = (ListView)findViewById(R.id.myListView1);          //获取正在运行的进程的信息并在ListView中显示出来    getRunningAppProcessInfo();        //为refresh按钮绑定监听器    refresh.setOnClickListener(new Button.OnClickListener()      {        @Override        public void onClick(View v)        {        getRunningAppProcessInfo();      Toast toast = Toast.makeText(MainActivity.this,"refresh...", Toast.LENGTH_LONG);  toast.show();      }      });    }    public void getRunningAppProcessInfo(){    myActivityManager = (ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE);  arrayListPro = new ArrayList<String>(); List<ActivityManager.RunningAppProcessInfo> mRunningPros = myActivityManager.getRunningAppProcesses();int i = 1;for (ActivityManager.RunningAppProcessInfo amPro : mRunningPros)arrayListPro.add("" + (i++) + ": "+ amPro.processName+ "(ID=" + amPro.pid +")"); arrayAdapter = new ArrayAdapter<String> (MainActivity.this, android.R.layout.simple_list_item_1, arrayListPro); proList.setAdapter(arrayAdapter);  }  } 

下面做些许说明:

private Button refresh;
private ListView proList;
private ArrayAdapter<String> arrayAdapter;
private ArrayList<String> arrayListPro; //String类型的数组
private ActivityManager myActivityManager;


ArrayAdapter(数组适配器)最简单的应用是用于显示一行文本信息。

public ArrayAdapter(Context context,int textViewResourceId,List<T> objects)

第一个参数是上下文,第二个参数是要显示的xml,第三个参数是提供要在xml显示的内容,为一个List<T>类型的数据。

更详细的解释:

public void getRunningAppProcessInfo(){    //getSystemService(ACTIVITY_SERVICE)的到系统的服务信息,数据类型是ActivityManager    myActivityManager = (ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE);  //新建一个String类型的ArrayList,用来存放数据    arrayListPro = new ArrayList<String>();     //myActivityManager.getRunningAppProcesses()取出的数据类型是List<ActivityManager.RunningAppProcessInfo>的List<ActivityManager.RunningAppProcessInfo> mRunningPros = myActivityManager.getRunningAppProcesses();int i = 1;//顺序枚举每个元素,使用ArrayList<String>类型的add方法添加元素for (ActivityManager.RunningAppProcessInfo amPro : mRunningPros)arrayListPro.add("" + (i++) + ": "+ amPro.processName+ "(ID=" + amPro.pid +")"); arrayAdapter = new ArrayAdapter<String> (MainActivity.this, android.R.layout.simple_list_item_1, arrayListPro); //用setAdapter()将ListView和Adapter绑定proList.setAdapter(arrayAdapter);  }  



最终效果:


源文件:ListView.zip

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Python技巧匿名函数、回调函数和高阶函数
  3. python list.sort()根据多个关键字排序的方法实现
  4. 使用User Agent分辨出Android设备类型的安全做法
  5. Android之UI学习篇二:TextVeiw显示表情和跑马灯效果
  6. Unity3D研究院之与Android相互传递消息(十九)
  7. 详解android:scaleType属性
  8. android使用WebView显示sdcard的html文件
  9. Android(安卓)CountDownTimer带有动画的倒计时

随机推荐

  1. Android(安卓)使用 TableLayout 布局拉伸
  2. Android(安卓)Studio2.0引入so文件(亲测)
  3. Android开机广播android.intent.action.B
  4. Andorid旋转动画
  5. Android(安卓)framework完整源码下载
  6. Android控件之ImageView,Button, ImageBut
  7. Android摄像头编程及注意事项
  8. Android关闭其他程序
  9. 【Android】android使用Leaks检测内存泄
  10. Android(安卓)自带TTS 使用