0
点赞
收藏
分享

微信扫一扫

【Android 练习】ListView、SimpleAdapter

独西楼Q 2022-08-12 阅读 65


使用 ListView 和 SimpleAdapter 展现数据

问题描述:

  • 该程序的作用是使用 ListView 和 SimpleAdapter 展现一个带图片的城
    市列表,当点击某一城市时,将在列表上方显示该城市名称(如图1所示)。
  • 【Android 练习】ListView、SimpleAdapter_xml

  • 备注:
    (1)考生按照系统提示目录保存试题文件,每道试题建立一个文件夹,文
    件夹名为题目编号。该试题文件夹名为“1”,该文件夹内应包含6个文件,分别为:
    项目打包压缩文件:App1.zip
    程序逻辑文件:MainActivity.java 主界面描述文件:activity_main.xml
    列表描述文件:list_item.xml
    程序运行截图界面(点击城市选项前):1.png
    程序运行截图界面(点击城市选项后):2.png
    (2)程序要求:
    使用 ListView 和 SimpleAdater 展现城市列表。
    图片数据请参考案例资源

代码如下:

ListView1Activity.xml

【Android 练习】ListView、SimpleAdapter_xml_02

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".basicItems.Adapter_ListView.ListView1Activity">
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="150dp"
android:layout_marginTop="32dp"
android:text="城市名称"
android:textSize="24dp" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="533dp"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="0dp"
android:layout_marginBottom="0dp"
tools:layout_editor_absoluteX="57dp"
tools:layout_editor_absoluteY="141dp" />
</RelativeLayout>

SimpleAdapterActivity.xml

【Android 练习】ListView、SimpleAdapter_java_03

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".basicItems.Adapter_ListView.SimpleAdapterActivity">
<!-- 定义一个用于显示城市图标的ImageView -->
<ImageView
android:id="@+id/img_tou"
android:layout_width="76dp"
android:layout_height="80dp"
app:srcCompat="@drawable/dynamic" />
<!-- 定义一个竖直方向的LinearLayout,把城市的名称,等级 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="82dp"
android:orientation="vertical">
<TextView
android:id="@+id/city_name"
android:layout_width="76dp"
android:layout_height="40dp"
android:text="江苏"
android:textColor="#1D1D1C"
android:textSize="24dp" />
<TextView
android:id="@+id/level"
android:layout_width="74dp"
android:layout_height="42dp"
android:text="三线"
android:textColor="#1D1D1C"
android:textSize="24dp" />
</LinearLayout>
</LinearLayout>

ListView1Activity .java

package com.example.learning.basicItems.Adapter_ListView;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.example.learning.R;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListView1Activity extends AppCompatActivity {

// 构建数据
private String[] names = new String[]{"北京", "上海", "广州","深圳","杭州"};
private String[] levels = new String[]{"一线","一线", "二线","一线","二线"};
private int[] imgIds = new int[]{R.drawable.a, R.drawable.b, R.drawable.c,R.drawable.d,R.drawable.e};
// 声明组件
TextView textView6;
ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view1);

// 获取组件
textView6 = findViewById(R.id.textView6);
listView = findViewById(R.id.listView1);

// 添加数据到每个list_item
List<Map<String,Object>> listItems = new ArrayList<>();
for (int i = 0; i < names.length; i++) {
Map<String,Object> map = new HashMap<>();
map.put("img_tou",imgIds[i]);
map.put("city_name",names[i]);
map.put("level",levels[i]);
listItems.add(map);
}

// 创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(getApplicationContext(),
listItems,
R.layout.activity_simple_adapter,
new String[]{"img_tou","city_name","level"},
new int[]{R.id.img_tou,R.id.city_name,R.id.level});
listView.setAdapter(simpleAdapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 显示选中的城市名称
textView6.setText(names[position]);
}
});
}
}

【Android 练习】ListView、SimpleAdapter_xml_04


举报

相关推荐

0 条评论