自定义adapter Android

Adapter是介于data层和view层之间的媒介。

在Android中,自定义Adapter通常是通过扩展BaseAdapter类来实现的。以下是一个简单的自定义Adapter的例子,它展示了如何在ListView中展示一个简单的字符串列表。

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
 
import java.util.List;
 
public class CustomAdapter extends BaseAdapter {
    private Context context;
    private List<String> data;
 
    public CustomAdapter(Context context, List<String> data) {
        this.context = context;
        this.data = data;
    }
 
    @Override
    public int getCount() {
        return data.size();
    }
 
    @Override
    public Object getItem(int position) {
        return data.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, parent, false);
        }
 
        TextView textView = (TextView) convertView;
        textView.setText(data.get(position));
 
        return convertView;
    }
}

在你的Activity中,你可以这样使用这个自定义Adapter:

 
import android.os.Bundle;
import android.widget.ListView;
 
import java.util.Arrays;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        ListView listView = (ListView) findViewById(R.id.listView);
        List<String> data = Arrays.asList("Item 1", "Item 2", "Item 3");
        CustomAdapter adapter = new CustomAdapter(this, data);
        listView.setAdapter(adapter);
    }
}

在这个例子中,我们创建了一个简单的自定义CustomAdapter,它接收一个Context和一个字符串列表。getView方法负责为每个列表项创建视图,这里我们使用了Android提供的简单布局android.R.layout.simple_list_item_1,它只包含一个TextView。你可以根据需要自定义布局和视图组件。

posted @ 2024-06-27 14:12  黄增松  阅读(3)  评论(0编辑  收藏  举报