记账本小程序改进之listview的引入

开学已经第三周了,虽然本学期的学习任务任然是Web开发,但殊途同源,个人还是对Android比较感兴趣。

之前的记账本小程序数据太多的话会出现数据冗余的错误,为了改进这一错误,

所以本周自学了List View这一控件。

  • ListView
  1. 系统提供的可以显示多个item的控件
  2. 可以合理的展示界面
  • 使用步骤
  1. 在布局xml文件声明listview控件
  2. 在Java代码里找到list view控件设置数据适配器
  3. getCount()确定list view中有多少个条目
  4. getView(int position)返回某个位置要显示的view对象 

布局文件

<ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/lv"/>

MainActivaty

package com.fmd.listview;

import android.app.Activity;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {

    private ListView lv;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //查找视图
        lv = findViewById(R.id.lv);
        //设置控制器 controller
        lv.setAdapter(new MyAdapter());
    }

    //用来控制list view如何显示
    private class MyAdapter extends BaseAdapter{

        //控制listview里有多少个item条目
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 100;
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            TextView tv = new TextView(MainActivity.this);
            tv.setText("我是文本:"+position);
            tv.setTextSize(24);
            return tv;
        }
        
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }
        
    }
    
    
}

原文地址:https://www.cnblogs.com/fuheishi/p/10544162.html