我什么都有,就是没钱

本人的android:qq群:181235811,欢迎大家加入讨论技术问题呀
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

最简单的自定义适配器adapter

Posted on 2013-11-30 08:19  我什么都有,就是没钱  阅读(279)  评论(0)    收藏  举报

下面是一个非常简单的自定义适配器的总体源码,从这个源码入门,就可以慢慢学会适配器了

适配器的作用:

  完成数据和界面控件的绑定,把数据绑定到界面的现实控件条目上(对于listView,应该是listView中对应的条目,也就是item)

1.主布局文件:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

 

2.MainActivity.java

package com.zyf.android.mypro;

import com.zyf.android.adapter.MyAdapter;
import com.zyf.androidmypro.R;
import android.os.Bundle;
import android.widget.ListView;
import android.app.Activity;

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.listview);
    
        listView.setAdapter(new MyAdapter(this));
        
    }
}

 

3.
MyAdapter.java

package com.zyf.android.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {

    String text[] = {"文本0","文本1","文本2","文本3","文本4","文本5"};
    Context context;
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return text.length;
    }
    
    public MyAdapter(Context context) {
        super();
        this.context = context;//获取到上下文对象,在getView()中使用
    }

    @Override
    public String getItem(int position) {
        // TODO Auto-generated method stub
        return text[position];
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        //准备数据
        String tx = text[position];
        //准备布局控件
        TextView textview = new TextView(this.context);//程序中构造一个TextView
        
        //适配(也不能叫适配,就是给准备好的控件添加数据)
        textview.setText(tx);//对新构造的textview中设定文本数据
        
        //返回
        return textview;
    }
}

 

4.效果图