十六、ListView
一.、使用 setAdapter 方法进行 内容的填充
二、 创建 MyAdapter 类继承 BaseAdapter ;对 BaseAdapter 的方法 getView 进行重写,进行信息的展示
三、代码示例
1.设置页面
1 2 3 4 5 6 7 8 9 10 11 | <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout android:layout_width= "match_parent" android:layout_height= "match_parent" xmlns:android= "http://schemas.android.com/apk/res/android" > <ListView android:id= "@+id/lv" android:layout_width= "match_parent" android:layout_height= "match_parent" /> </LinearLayout> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" xmlns:android= "http://schemas.android.com/apk/res/android" > <TextView android:id= "@+id/tv" android:textSize= "30sp" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> </LinearLayout> |
2.后台
1 2 3 4 5 6 7 8 9 10 11 12 13 | package com.example.myapplication; public class Bean { String name; public String getName() { return name; } public void setName(String name) { this .name = name; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package com.example.myapplication; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; 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); for ( int i= 0 ; i< 100 ; i++){ Bean bean= new Bean(); bean.setName( "乡学" +i); data.add(bean); } Context context= this ; ListView listView=findViewById(R.id.lv); listView.setAdapter( new MyAdapter(data,context)); listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Log.e( "leo" , "onItemClick: " +i ); //显示对话框 AlertDialog.Builder builder= new AlertDialog.Builder(context); builder.setIcon(R.mipmap.ic_launcher) .setTitle( "标题" ) .setMessage( "文本提示信息:" +data.get(i).getName()) .create().show(); } }); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 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 org.w3c.dom.Text; import java.util.List; public class MyAdapter extends BaseAdapter { private List<Bean> data; private Context context; public MyAdapter(List<Bean> data2,Context context2){ this .data=data2; this .context=context2; } @Override public int getCount() { return data.size(); } @Override public Object getItem( int i) { return null ; } @Override public long getItemId( int i) { return i; } /** * 返回item条目 * */ @Override public View getView( int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; //当view等于null时进行创建 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; } } |
分类:
Android Studio
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)