安卓LISTVIEW

适配器

Adapter告诉你的LISTVIEW中放啥?是怎么样的
`android
package com.example.Adaper;

import java.util.ArrayList;



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

import com.example.ui_qq_login.R;
import com.exaple.person.*;
public class ListViewAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<Person> list;

    public ListViewAdapter(Context context, ArrayList<Person> list) {
        this.context = context;
        this.list = list;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }

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

    @Override
    public View getView(final int position, View convertView, ViewGroup arg2) {
    //list_item放置每个标签的格式。
        // TODO Auto-generated method stub
        convertView = LayoutInflater.from(context).inflate(R.layout.list_item,
                null);
        TextView textView_name = (TextView) convertView.findViewById(R.id.name);
        TextView textView_number = (TextView) convertView
                .findViewById(R.id.number);
        ImageView imageView = (ImageView) convertView.findViewById(R.id.pic);
        textView_name.setText(list.get(position).id);
        textView_number.setText(list.get(position).name);
        imageView.setImageDrawable(context.getResources().getDrawable(
                R.drawable.ic_launcher));
        return convertView;
    }

}

## list_item ##

在写LISTVIEW_LAYOUT

package com.example.ui_qq_login;

import java.util.ArrayList;

import com.example.Adaper.*;
import com.example.service.Myservice2;
import com.exaple.person.Person;

import android.app.Activity;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.widget.ListAdapter;
import android.widget.ListView;

public class ListViewActivity extends Activity {

    public ListView listview;
    public ArrayList<Person> list;
    private Myservice2 myservice2;
    private ServiceConnection conn = new ServiceConnection() {

        @Override
        public void onServiceDisconnected(ComponentName arg0) {
            myservice2 = null;

        }

        @Override
        public void onServiceConnected(ComponentName arg0, IBinder service) {
            myservice2 = ((Myservice2.Mybind) service).getService();
        }
    };

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.avtivity_listview);

        listview = (ListView) findViewById(R.id.mylistview);
        docreate();
        ListViewAdapter adapter = new ListViewAdapter(ListViewActivity.this,
                list);
                //如果有HEADVIEW,一定要在SETADAPTER之前加入
        listview.setAdapter(adapter);

    }
//以下为创建数据。。项目中都是从服务器拿的数据
    public void docreate() {
        list = new ArrayList<Person>();
        for (int i = 0; i < 20; i++) {
            Person person = new Person(i + "", System.currentTimeMillis() + "");
            list.add(person);
        }
    }

}
### 关于Android ListView 使用及实例 #### 创建带有ListView的项目结构 为了创建一个包含`ListView`组件的应用程序,可以按照如下方式设置新项目[^2]: ```java // 在项目的清单文件中定义主活动 <activity android:name=".MyListActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> // 设置布局资源文件 res/layout/activity_my_list.xml 中的内容视图为主列表项集合 <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content"/> ``` #### 实现简单的ListView适配器 对于显示数据到`ListView`而言,通常会自定义一个继承自`BaseAdapter`类或其他内置适配器(如`ArrayAdapter`)的对象。这里给出基于数组的数据源例子。 ```java public class MyListAdapter extends ArrayAdapter<String> { private Context context; private String[] values; public MyListAdapter(Context context, int textViewResourceId, String[] objects) { super(context, textViewResourceId, objects); this.context = context; this.values = objects; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.row_layout, null); TextView textView = (TextView)rowView.findViewById(R.id.label); ImageView imageView = (ImageView)rowView.findViewById(R.id.logo); textView.setText(values[position]); // 更多配置... return rowView; } } ``` 其中`row_layout.xml`是每一行条目的外观描述,在此省略具体实现细节。 #### 绑定ListView与适配器 最后一步是在活动中初始化并绑定`ListView`和其对应的适配器对象。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_list); // 获取ListView控件引用 ListView listView = findViewById(R.id.list_view); // 准备一些测试字符串作为展示内容 String[] items = {"Item One", "Item Two", "Item Three"}; // 构造适配器并将它关联给listview MyListAdapter adapter = new MyListAdapter(this,R.layout.row_layout,items); listView.setAdapter(adapter); } ``` 上述代码片段展示了如何构建基本的`ListView`及其交互逻辑。当然实际应用可能涉及更复杂的场景比如加载网络图片、处理点击事件等操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值