【Android】ListView 控件的简单使用

首页 / 新闻资讯 / 正文

First Vector Graphic

1. 效果预览

2. 在布局文件中放置 ListView 控件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".MainActivity">      <ListView         android:id="@+id/listView"         android:layout_width="match_parent"         android:layout_height="wrap_content"/>  </LinearLayout>

3. 创建 ListView 的 item 布局

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="wrap_content">      <ImageView         android:id="@+id/iv_interaction"         android:layout_alignParentStart="true"         android:padding="10dp"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         tools:ignore="ContentDescription" />      <TextView         android:id="@+id/tv_interaction"         android:layout_toEndOf="@+id/iv_interaction"         android:layout_centerVertical="true"         android:textSize="20sp"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         tools:ignore="RelativeOverlap" />      <ImageView         android:id="@+id/messages_into"         android:layout_alignParentEnd="true"         android:padding="10dp"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         tools:ignore="ContentDescription" />  </RelativeLayout>

4. 创建实体类

public class InteractionBean {      private final int iv_interaction;     private final String tv_interaction;     private final int messages_into;      public InteractionBean(int iv_interaction, String tv_interaction, int messages_into){         this.iv_interaction = iv_interaction;         this.tv_interaction = tv_interaction;         this.messages_into = messages_into;     }      public int getIv_interaction() {         return iv_interaction;     }      public String getTv_interaction() {         return tv_interaction;     }      public int getMessages_into() {         return messages_into;     }  }

5. 创建适配器继承自 BaseAdapter

public class InteractionAdapter extends BaseAdapter {      private final Context context;     private final List<InteractionBean> interactions;      public InteractionAdapter(Context context, List<InteractionBean> interactions){         this.context = context;         this.interactions = interactions;     }      @Override     public int getCount() {         return interactions.size();     }      @Override     public Object getItem(int i) {         return interactions.get(i);     }      @Override     public long getItemId(int i) {         return i;     }      @Override     public View getView(int i, View view, ViewGroup viewGroup) {          ViewHolder holder;          if (view == null){             view = LayoutInflater.from(context).inflate(R.layout.interaction_item, viewGroup, false);             holder = new ViewHolder();             holder.iv_interaction = view.findViewById(R.id.iv_interaction);             holder.tv_interaction = view.findViewById(R.id.tv_interaction);             holder.messages_into = view.findViewById(R.id.messages_into);             view.setTag(holder);         }else {             holder = (ViewHolder) view.getTag();         }          holder.iv_interaction.setImageResource(interactions.get(i).getIv_interaction());         holder.tv_interaction.setText(interactions.get(i).getTv_interaction());         holder.messages_into.setImageResource(interactions.get(i).getMessages_into());          return view;      }      static class ViewHolder{         ImageView iv_interaction;         TextView tv_interaction;         ImageView messages_into;     }  }

6. 为 item 设置数据,为 ListView 设置适配器

public class MainActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          ListView listView = findViewById(R.id.listView);         List<InteractionBean> interactions = new ArrayList<>();         InteractionAdapter adapter = new InteractionAdapter(MainActivity.this, interactions);          InteractionBean at = new InteractionBean(R.drawable.messages_at, "有人@你", R.drawable.messages_into);         InteractionBean comment = new InteractionBean(R.drawable.messages_comment, "评论提醒", R.drawable.messages_into);         InteractionBean like = new InteractionBean(R.drawable.messages_like, "点赞提醒", R.drawable.messages_into);          interactions.add(at);         interactions.add(comment);         interactions.add(like);          listView.setAdapter(adapter);      } }