通过ListActivity创建一个ListView

ListView本身是一种接口组件,一般可以利用适配器来创建一个ListView,也可以利用资源文件中数组标签来创建一个ListView。
下面介绍怎么利用资源数据通过使用ListActivity来创建并控制一个ListView:

    xml布局文件中代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textview"
        android:text="显示listview的item"/>
<ListView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@android:id/list"  
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    ></ListView>
</LinearLayout>
资源数组文件value.xml中定义一个string-array,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">MyAlertDialog</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
 <string-array name="weekday">
        <item>星期一</item>
        <item>星期二</item>
        <item>星期三</item>
        <item>星期四</item>
        <item>星期五</item>
        <item>星期六</item>
        <item>星期日</item>
    </string-array>
</resources>

创建一个ListActiviyt,代码如下。当然在系统自动创建的MainActivity中将继承的Activity改成ListActivity,然后在onCreate()方法中添加代码也是可以的:

package com.example.myalertdialog;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MyListViewActivity extends ListActivity {
 private ListView myListView = null;
 private TextView myTextView = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.listviewlayout);
  setupViewComponent();
 }
 private void setupViewComponent(){
  myTextView = (TextView)this.findViewById(R.id.textview);
  ArrayAdapter<CharSequence> myAdapter = ArrayAdapter.createFromResource(this, R.array.weekday,
    android.R.layout.simple_list_item_1);
  //通过ArrayAdapter.createFromResource()方法加载数组资源。android.R.layout.simple_list_item1是Anroid中一个列表项显示的格式
  setListAdapter(myAdapter);
  //设置ListView的适配器
     myListView = getListView();  //通过固定@android:id/list得到ListView对象。
     myListView.setTextFilterEnabled(true);
     AdapterView.OnItemClickListener listviewOnItemClick = new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
       myTextView.setText(((TextView)view).getText());
      }
  };
     myListView.setOnItemClickListener(listviewOnItemClick);
 }
}

注意:这里第一个TextView是用来显示点击ListView上Item上的文字,id可以自定义。第二个是ListView空间,这里的id是固定不变的,因为ListActivity会利用
getListView()方法通过@android:id/list找到xml中ListView。



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值