ViewHolder的使用

直接上代码- -

package com.example.viewholdtest;

import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
    private Context context = this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView lv = (ListView) findViewById(R.id.vhListView);
        MyListAdapter mla = new MyListAdapter(50);
        lv.setAdapter(mla);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public class MyListAdapter extends BaseAdapter{
        private int num = 0;
        private LayoutInflater lf = LayoutInflater.from(context);

        public MyListAdapter(int num){
            this.num = num;
        }
        @Override
        public int getCount() {
            return num;
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            ViewHolder vh;
            if(view == null){
                view = lf.inflate(R.layout.mylistview, null);
                vh = new ViewHolder();
                vh.num = (TextView) view.findViewById(R.id.num);
                vh.address = (TextView) view.findViewById(R.id.address);
                view.setTag(vh);
            }
            else{
                vh = (ViewHolder) view.getTag();
            }
            vh.num.setText(String.valueOf(i));
            vh.address.setText(view.toString());
            return view;
        }
    }

    public static class  ViewHolder{
        private TextView num;
        private TextView address;
    }
}

 

posted @ 2014-03-17 21:55  yutoulck  阅读(498)  评论(0编辑  收藏  举报