本文共 4992 字,大约阅读时间需要 16 分钟。
4.1 以 MainActivity为默认启动界面,并实现3秒跳转
public class MainActivity extends AppCompatActivity { Handler mHandler = new Handler(); // 创建一个 Handler对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 发送一个可执行对象 mHandler.postDelayed(new Runnable() { @Override public void run() { // 跳转到 ListViewActivity Intent intent = new Intent(MainActivity.this, ListViewActivity.class); startActivity(intent); } }, 3000);// 3秒后跳转 }}
4.2 创建一个 UserInfo类
public class UserInfo implements Serializable { private String mUsername; private Integer mAge; private String avatar; public UserInfo() { } public UserInfo(String mUsername, Integer mAge) { this.mUsername = mUsername; this.mAge = mAge; } public String getmUsername() { return mUsername; } public void setmUsername(String mUsername) { this.mUsername = mUsername; } public Integer getmAge() { return mAge; } public void setmAge(Integer mAge) { this.mAge = mAge; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; }}
4.3 在 res/layout下新建一个 activity_listview.xml文件
4.4 新建一个 ListViewActivity,并添加列表数据,再加入到AndroidManifest.xml中
public class ListViewActivity extends Activity { private ListView mPhoneBookListView; private ListmUserInfos; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); mPhoneBookListView = findViewById(R.id.list_view); mUserInfos = new ArrayList<>(); mUserInfos.add(new UserInfo("小明", 16)); mUserInfos.add(new UserInfo("小红", 17)); mUserInfos.add(new UserInfo("小李", 18)); mUserInfos.add(new UserInfo("小芳", 19)); mUserInfos.add(new UserInfo("小黄", 20)); PhoneBookAdapter phoneBookAdapter = new PhoneBookAdapter(ListViewActivity.this, mUserInfos); mPhoneBookListView.setAdapter(phoneBookAdapter); // 设置点击事件 mPhoneBookListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { Toast.makeText(ListViewActivity.this, mUserInfos.get(position).getmUsername() + "被点击了", Toast.LENGTH_SHORT).show(); } }); // 设置长按事件 mPhoneBookListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { Toast.makeText(ListViewActivity.this, mUserInfos.get(position).getmUsername() + "被长按了", Toast.LENGTH_SHORT).show(); return false; } }); }}
4.5 构造桥梁,创建 PhoneBookAdapter类,并创建 item_phonebook.xml文件
public class PhoneBookAdapter extends BaseAdapter { private Context mContext; // 声明 Context上下文 private LayoutInflater mLayoutInflater; // 声明 LayoutInflater:加载布局管理器 private ListmUserInfos = new ArrayList<>(); // 创建 UserInfo集合 // 创建一个构造器,初始化数据 public PhoneBookAdapter(Context context, List userInfos) { mContext = context; mUserInfos = userInfos; mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { // 有多少条数据 return mUserInfos.size(); } @Override public Object getItem(int position) { // 返回某一条数据对象 return mUserInfos.get(position); } @Override public long getItemId(int position) { // 每一条数据的ID return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 返回一个视图 // 将 xml布局文件转换为 View对象,并将 item_phonebook视图中的每一条item解析出来 convertView = mLayoutInflater.inflate(R.layout.item_phonebook, null); // 获取控件 TextView nameTextView = convertView.findViewById(R.id.name_text_view); TextView ageTextView = convertView.findViewById(R.id.age_text_view); ImageView avatarImageView = convertView.findViewById(R.id.avatar_text_view); // 和数据之间进行绑定 nameTextView.setText(mUserInfos.get(position).getmUsername()); ageTextView.setText(String.valueOf(mUserInfos.get(position).getmAge())); avatarImageView.setImageResource(R.drawable.phonebook); return convertView; }}
4.6 效果预览
本节学习内容就到这里了。学习地址:https://www.bilibili.com/video/av89274094
转载地址:http://eziwi.baihongyu.com/