赞
踩
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
- <ListView
- android:id="@+id/lv"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
-
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="30sp"/>
-
- </LinearLayout>
- package com.example.myapplication;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ListView;
- import androidx.appcompat.app.AppCompatActivity;
- import java.util.ArrayList;
- import java.util.List;
-
- public class MainActivity extends AppCompatActivity {
-
- private List<Bean> data = new ArrayList<>();
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 每个item显示的内容
- for (int i = 0; i < 100; i++) {
- Bean bean = new Bean();
- bean.setName("局长,我想进步了!" + i);
- data.add(bean);
- }
-
- ListView lv = findViewById(R.id.lv);
- lv.setAdapter(new MyAdapter(data, this));
-
- // 触发item点击事件
- lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- Log.e("leo", "onItemClick" + i);
- }
- });
- }
- }
- package com.example.myapplication;
-
- public class Bean {
-
- String name;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
- package com.example.myapplication;
-
- import android.content.Context;
- import android.util.Log;
- 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 MyAdapter extends BaseAdapter {
- private List<Bean> data;
- private Context context;
-
- public MyAdapter(List<Bean> data, Context context) {
- this.data = data;
- this.context = context;
- }
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @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) {
- if (view == null) {
- view = LayoutInflater.from(context).inflate(R.layout.list_item,viewGroup,false);
- }
- TextView textView = view.findViewById(R.id.tv);
- textView.setText(data.get(i).getName());
-
- Log.e("leo","getView" + i);
- return view;
- }
- }
上述标红处需重点理解
降低findViewById的使用,提高运行速度
- package com.example.myapplication;
-
- import android.content.Context;
- import android.util.Log;
- 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 MyAdapter extends BaseAdapter {
- private List<Bean> data;
- private Context context;
-
- public MyAdapter(List<Bean> data, Context context) {
- this.data = data;
- this.context = context;
- }
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @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 viewHolder;
- if (view == null) {
- viewHolder = new ViewHolder();
- view = LayoutInflater.from(context).inflate(R.layout.list_item,viewGroup,false);
- viewHolder.textView = view.findViewById(R.id.tv);
- view.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) view.getTag();
- }
-
- viewHolder.textView.setText(data.get(i).getName());
-
- Log.e("leo","getView" + i);
- return view;
- }
-
- private final class ViewHolder {
- TextView textView;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。