好的接下來的話就是我們的listview控件了,現在的話就是我們的listview的話就是設置
我們的列表項的,它的話是呈現的是我們的列表的形式顯現出來主要的話是用來設置我們
的列表項的如我們的新聞等。
Step1: 創建一個我們的項目,然後的話就是編寫我們的xml文件。
Step2: ListView進行數據的展示
然後的話就是我們的基本適配器:BaseAdapter
我們的BaseAdapter的四個方法
1: public int getCount() // 獲取的是我們的的item的數量
2: public Object getItem(int position) 根據我們position(位置)得到我們的item對象
3: public long getItemId() 這個方法的話就是根據我們的position得到我們的某個item的id。
4: public View getView(int position,View convertView,ViewGroup parent)第一個的參數的話
對應的是我們的position指的就是我們的position對應的視圖,第二個參數的話是複用舊的視圖,第三個參數的話是加載我們的xml佈局
//然後在這個位置的話就是補充我們的適配器對象:SimpleAdapter的話繼承的是我們的
BaseAdapter.
然後的話就是我們的第三個適配器:
然後的話就是我們的實戰的演練:
然後的話實戰演練的第一步的話就是
1: 創建一個我們的Android項目,然後話編寫我們的佈局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
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_margin="5dp"
android:divider="#5E5E5D"
android:dividerHeight="1dp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!--在這個位置的話我們使用到了我們的就是divider指的是我們的分割線然後的話我們制定它的高度是1dp-->
</RelativeLayout>
2: step2: 我們的listview的佈局文件寫好以後呢?我們的話就創建我們的條目,指代的就是創建我們的條目,item,(條目的創建是在我麼的layout下的)。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--好的現在的話我們就是在我們設置的item佈局文件中了,現在的話就是編寫我們的item的佈局的方式
在我們的上面的話我們使它的那個佈局的方向是水平垂直的居中,然後的話還有的就是我們的線性方向的
話設置爲水平方向
-->
<ImageView
android:background="@mipmap/xwen1"
android:id="@+id/item_image"
android:layout_margin="8dp"
android:layout_width="48dp"
android:layout_height="48dp"/>
<TextView
android:id="@+id/item_iv"
android:textSize="18sp"
android:text="我是listview的item佈局"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
然後的話就是編寫我們的MainActivity部分的代碼:
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private ListView listView;
// todo step2: 定義我們需要的適配器數據
private String[] news= {
"新聞1","新聞2","新聞3"};
// todo step2: 定義我們圖片的集合
private int[] icons = {
R.mipmap.xwen1,R.mipmap.xweb,R.mipmap.cshi};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 接下來的話就是編寫我們的邏輯部分的代碼 TODO step1: 找到我們的ListView控件,然後的話將我們的數據轉換成我們的成員變量
listView = (ListView) findViewById(R.id.ListView);
// todo step4: 最後的話就是創建我們的適配器:
MyBaseAdapter mAdapter = new MyBaseAdapter();
//然後的話就是設置我們適配器的方法
listView.setAdapter(mAdapter); //到此的話我們的程序編寫完成
}
// todo step3: 然後的話我們是一定要記住的就是我們的listview展示我們的數據的話是一定會用到我們的就是適配器我們的第三步的話就是定義我們的適配器
// 在這個位置定義我們的適配器,定義我們的適配器的話使用到的適配器的話是我們的最基礎的適配器
class MyBaseAdapter extends BaseAdapter{
private ImageView imageView;
private TextView textView;
@Override
public int getCount() {
//這個方法的話指代的就是我們的item的數量就是指代的就是我們的數組的長度
return news.length;
}
@Override
public Object getItem(int i) {
// 然後的話就是拿到我們的item對應的對象
return news[i];
}
// TODO 這裏的話就是我們使用我們的baseAdapter的話需要實現我們的對應的四個方法
@Override
public long getItemId(int i) {
// 這裏的話就是返回的是我們的數組中對應的id
return i;
}
// 這裏的話就是得到我們item的view實體
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
// 將我們編寫的佈局轉換成我們的view對象
// todo 然後的話我們的這裏又一個方法把我們的view佈局轉換成我們的view對象
View mview = View.inflate(MainActivity.this,R.layout.list_item,null);
// 找到我們編寫的就是設置的view佈局文件,然後的話轉換成我們的成員變量
imageView = (ImageView) mview.findViewById(R.id.item_image);
textView = (TextView) mview.findViewById(R.id.item_iv);
// 然後的話就是設置我們的數據第一個是我們的文本,第二個的話是我們的背景圖片
imageView.setBackgroundResource(icons[i]);
textView.setText(news[i]);
//然後的話就是將我們轉換好的view對象返回
return mview;
}
}
}