Android自定義ListView(添加圖片,子標題)含代碼

    Android自定義ListView(添加圖片,子標題)

    創建簡單的ListView之后,安卓還提供了自定義ListView的功能。愛掏網 - it200.com

    與簡單的ListView一樣,自定義的ListView也使用Adapter類,該類從數據源(比如字符串數組、數組、數據庫等)中添加內容。愛掏網 - it200.comAdapter將數據在AdapterViews和其他Views之間進行橋接。愛掏網 - it200.com

    自定義ListView的示例

    在這個自定義ListView的示例中,我們將添加圖片、帶標題和子標題的文本。愛掏網 - it200.com

    自定義ListView項目的結構

    activity_main.xml

    在layout文件夾中創建一個activity_main.xml文件。愛掏網 - it200.com

    文件名:activity_main.xml

    <?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="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.test.listviewwithimage.MainActivity">
    
        <ListView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="50dp">
        </ListView>
    </RelativeLayout>
    

    在布局文件夾中創建一個額外的mylist.xml文件,其中包含以列表視圖顯示的視圖組件。愛掏網 - it200.com

    mylist.xml

    文件:mylist.xml

    <?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="horizontal" >
    
        <ImageView
            android:id="@+id/icon"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:padding="5dp" />
    
        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:textStyle="bold"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:padding="2dp"
            android:textColor="#4d4d4d" />
        <TextView
            android:id="@+id/subtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" 
            android:layout_marginLeft="10dp"/>
        </LinearLayout>
    </LinearLayout>
    

    將所有必需的圖像放置在drawable文件夾中。愛掏網 - it200.com

    Activity類

    文件:MainActivity.java

    package com.example.test.listviewwithimage;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        ListView list;
    
        String[] maintitle ={
                "Title 1","Title 2",
                "Title 3","Title 4",
                "Title 5",
        };
    
        String[] subtitle ={
                "Sub Title 1","Sub Title 2",
                "Sub Title 3","Sub Title 4",
                "Sub Title 5",
        };
    
        Integer[] imgid={
                R.drawable.download_1,R.drawable.download_2,
                R.drawable.download_3,R.drawable.download_4,
                R.drawable.download_5,
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            MyListAdapter adapter=new MyListAdapter(this, maintitle, subtitle,imgid);
            list=(ListView)findViewById(R.id.list);
            list.setAdapter(adapter);
    
    
            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                    // TODO Auto-generated method stub
                    if(position == 0) {
                        //code specific to first list item
                        Toast.makeText(getApplicationContext(),"Place Your First Option Code",Toast.LENGTH_SHORT).show();
                    }
    
                    else if(position == 1) {
                        //code specific to 2nd list item
                        Toast.makeText(getApplicationContext(),"Place Your Second Option Code",Toast.LENGTH_SHORT).show();
                    }
    
                    else if(position == 2) {
    
                        Toast.makeText(getApplicationContext(),"Place Your Third Option Code",Toast.LENGTH_SHORT).show();
                    }
                    else if(position == 3) {
    
                        Toast.makeText(getApplicationContext(),"Place Your Forth Option Code",Toast.LENGTH_SHORT).show();
                    }
                    else if(position == 4) {
    
                        Toast.makeText(getApplicationContext(),"Place Your Fifth Option Code",Toast.LENGTH_SHORT).show();
                    }
    
                }
            });
        }
    }
    

    自定義我們的ListView

    創建另一個Java類MyListView.java,該類繼承ArrayAdapter類。愛掏網 - it200.com這個類會自定義我們的ListView。愛掏網 - it200.com

    MyListView.java

    package com.example.test.listviewwithimage;
    
    import android.app.Activity;
    
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class MyListAdapter extends ArrayAdapter<String> {
    
        private final Activity context;
        private final String[] maintitle;
        private final String[] subtitle;
        private final Integer[] imgid;
    
        public MyListAdapter(Activity context, String[] maintitle,String[] subtitle, Integer[] imgid) {
            super(context, R.layout.mylist, maintitle);
            // TODO Auto-generated constructor stub
    
            this.context=context;
            this.maintitle=maintitle;
            this.subtitle=subtitle;
            this.imgid=imgid;
    
        }
    
        public View getView(int position,View view,ViewGroup parent) {
            LayoutInflater inflater=context.getLayoutInflater();
            View rowView=inflater.inflate(R.layout.mylist, null,true);
    
            TextView titleText = (TextView) rowView.findViewById(R.id.title);
            ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
            TextView subtitleText = (TextView) rowView.findViewById(R.id.subtitle);
    
            titleText.setText(maintitle[position]);
            imageView.setImageResource(imgid[position]);
            subtitleText.setText(subtitle[position]);
    
            return rowView;
    
        };
    }
    

    輸出

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 日本一区二区三区免费高清在线 | 国产怡春院无码一区二区| 无码8090精品久久一区| 国产福利一区二区精品秒拍| 精品一区二区三区四区电影| 香蕉久久AⅤ一区二区三区 | 免费日本一区二区| 中文字幕一区二区三区精彩视频| 国产香蕉一区二区在线网站| 精品国产一区二区三区四区 | 日韩一区二区在线观看视频| 亚洲一区二区久久| 无码一区二区三区亚洲人妻| 99精品久久精品一区二区| 99精品国产一区二区三区不卡 | 香蕉视频一区二区| 亚洲av成人一区二区三区| 午夜视频久久久久一区 | 在线精品自拍亚洲第一区| 少妇无码AV无码一区| 亚洲av无码一区二区三区在线播放 | 国产丝袜美女一区二区三区| 亚洲综合av一区二区三区| 国产成人精品久久一区二区三区av| 日韩免费观看一区| 国产一区二区三区精品久久呦| 国产成人精品视频一区二区不卡| 久久久国产精品无码一区二区三区| 亚洲国产精品一区二区第一页免| 亚洲综合无码一区二区三区| 一区二区高清在线观看| 精品国产a∨无码一区二区三区| 国产成人精品亚洲一区| 亚洲国产高清在线精品一区| 亚州国产AV一区二区三区伊在| 精品少妇人妻AV一区二区三区| 久久久久国产一区二区三区| 无码国产精品一区二区免费I6| 精品久久一区二区三区| 天天爽夜夜爽人人爽一区二区 | 午夜无码视频一区二区三区|