Android开发学习:[1]列表视图(ListView)

2025-10-08 23:50:23

1、一、直接使用ListView组件创建

在布局文件中首先添加ListView

代码如下:

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

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity" >

    <ListView

        android:id="@+id/listView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:entries="@array/cytpe" >

    </ListView>

</LinearLayout>

Android开发学习:[1]列表视图(ListView)

2、这里使用了名称为ctype的数组资源,因此我们要在res/values目录中创建一个定义的数组资源的xml文件arrays.xml代码如下:

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

    <resources>

        <string-array name="cytpe">

        <item>情景模式</item>

        <item>主题模式</item>

        <item>手机</item>

        <item>程序管理</item>

        <item>通话设置</item>

        <item>连接功能</item>

        </string-array>

  

    </resources>

Android开发学习:[1]列表视图(ListView)

3、下面通过适配器来指定列表项来创建ListView

布局代码:

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

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity" >

    <ListView

        android:id="@+id/listView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:divider="@drawable/ic_launcher"

        android:dividerHeight="3px"

        android:footerDividersEnabled="false"

        android:headerDividersEnabled="false"

        >

    </ListView>

</LinearLayout>

Android开发学习:[1]列表视图(ListView)

4、Java代码:

package com.basillee.blogdemo;

import java.lang.annotation.Retention;

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.Toast;

public class MainActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ListView listView=(ListView)findViewById(R.id.listView1);

        ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.cytpe,android.R.layout.simple_list_item_single_choice);

        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> parent, View arg1, int pos,

                    long id) {

                String result=parent.getItemAtPosition(pos).toString();

                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();

            }

        });

    }


}

Android开发学习:[1]列表视图(ListView)

5、二、让Activity继承ListActivity实现:

如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity继承ListActivity来实现。继承ListActivity的类中无需调用setContentView方法来显示页面,而是可以直接为其设置适配器,从而显示一个列表。

废话少说直接看看代码大家就都懂了:

package com.basillee.blogdemo;

import java.lang.annotation.Retention;

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

import android.app.ListActivity;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.Toast;

public class MainActivity  extends ListActivity{

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        String []cytpeStrings=new String[]{"情景模式","主题模式","手机","程序管理"};

        ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,cytpeStrings);

        setListAdapter(adapter);

    }

    @Override

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

        // TODO Auto-generated method stub

        super.onListItemClick(l, v, position, id);

        String resultString=l.getItemAtPosition(position).toString();

        Toast.makeText(getApplicationContext(), resultString, Toast.LENGTH_LONG).show();

    }

         

}

Android开发学习:[1]列表视图(ListView)

6、大家可以在在自己的虚拟机上面运行试试。

Android开发学习:[1]列表视图(ListView)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢