Android控件之ListView应用

实验题目:Android控件之ListView应用

实验目的:

1.熟悉Android常用控件及ListView控件使用 

2.创建Store应用,实现数据库的列表显示

实验环境:Android Studio

实验内容:创建MyStore应用

(1)创建名为ListView的应用程序

 

 (2)导入界面图片

在res文件中创建drawable-hdpi文件,并导入图片资源

 

 

 

 

 

 

(3)放置界面控件

在activity_main文件中,放置一个TextView控件和一个ListView控件,用于显示商城界面的列表

 (4)创建Item界面

购物商城上的列表由若干个Item组成,每个Item显示商品图片、名称和价格。

在res/layout文件中创建list_item.xml文件。在文件中放入一个ImageView控件和三个TextView控件。

 

 

 

查看效果

 

(5)编写界面交互代码

在MainActivity文件中创建ViewHolder类,将需要加载的控件放入该类。

 

定义三个数组,分别存储商品中的名称,价格和图片。

初始化ListView控件

通过setAdapter()方法为ListView控件设置适配器。

创建MyBaseAdapter类,继承自BaseAdapter,并重写方法。

 

3.实验结果

 

实验总结:

本次实验熟悉了Android常用控件。掌握了ListView控件使用,创建名为ListView应用,实现了数据库的列表显示。学会了适配器的简单应用。并学习了对ListView加载数据逻辑的代码的优化。

---------------------------------------------------------------------------------------
1.
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 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"

    android:orientation="vertical">

    <TextView

        android:layout_width="match_parent"

        android:layout_height="45dp"

        android:background="#FF8F03"

        android:gravity="center"

        android:text="购物商城"

        android:textColor="#FFFFFF"

        android:textSize="18sp" />

    <ListView

        android:id="@+id/lv"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" />

</LinearLayout>

2.

<?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"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:padding="16dp">

    <ImageView

        android:id="@+id/iv"

        android:layout_width="120dp"

        android:layout_height="90dp"

        android:layout_centerVertical="true" />

    <RelativeLayout

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerVertical="true"

        android:layout_marginLeft="10dp"

        android:layout_toRightOf="@+id/iv">

        <TextView

            android:text="桌子"

            android:id="@+id/title"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:textColor="#000000"

            android:textSize="20sp" />

        <TextView

            android:id="@+id/tv_price"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_below="@+id/title"

            android:layout_marginTop="10dp"

            android:text="价格:"

            android:textColor="#FF8F03"

            android:textSize="20sp" />

        <TextView

            android:text="1000"

            android:id="@+id/price"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginTop="10dp"

            android:layout_below="@+id/title"

            android:layout_toRightOf="@+id/tv_price"

            android:textColor="#FF8F03"

            android:textSize="20sp " />

    </RelativeLayout>

</RelativeLayout>

3.

package cn.itcast.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;

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;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

    private  String[] titles={"desk","apple","cake","wireclothes","kiwifruit","scarf"};

    private  String[] prices={"800元","10元/kg","300元","350元","10元/kg","280元"};

    private  int[] icons={R.drawable.table,R.drawable.apple,R.drawable.cake,

            R.drawable.wireclothes,R.drawable.kiwifruit,R.drawable.scarf};

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ListView listView = findViewById(R.id.lv);

        MyBaseAdapter adapter=new MyBaseAdapter();

        listView.setAdapter(adapter);

    }


    class MyBaseAdapter extends BaseAdapter{

        @Override

        public int getCount() {//item总数

            return titles.length;

        }

        @Override

        public Object getItem(int position) { //item数据对象

            return titles[position];

        }

        @Override

        public long getItemId(int position) { // item id

            return position;

        }

        @Override

        public View getView(int position, View convertView, ViewGroup parent) { // view视图
            //将list_item.xml转换为view对象

//            View view = View.inflate(MainActivity.this,R.layout.list_item,null);

//            //初始化控件list_item中的

//            TextView title = view.findViewById(R.id.title);

//            TextView price= view.findViewById(R.id.price);

//            ImageView iv = view.findViewById(R.id.iv);

//            //将数组信息设置在布局中

//            title.setText(titles[position]);

//            price.setText(prices[position]);

//            iv.setImageResource(icons[position]);

            ViewHolder holder=null;

            if(convertView==null){

                convertView = View.inflate(MainActivity.this,R.layout.list_item,null);

                holder=new ViewHolder();

                holder.title= (TextView) convertView.findViewById(R.id.title);

                holder.price= (TextView) convertView.findViewById(R.id.price);

                holder.iv = (ImageView) convertView.findViewById(R.id.iv);

                convertView.setTag(holder);

            }else{

                holder=(ViewHolder) convertView.getTag();

            }

            holder.title.setText(titles[position]);

            holder.price.setText(prices[position]);

            holder.iv.setBackgroundResource(icons[position]);

            return convertView;

        }

    }

    class ViewHolder{

        TextView title;

        TextView price;

        ImageView iv;

    }

}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值