`

【Android】说做就做:带图标的list item

阅读更多

这几天在搞带有icon的list item,但实现方法貌似很复杂,照着国外达人的一些code snippet也搞不定,他们也没把全部的code发出了,NND。。。怒!今天终于集众家之大成。。。搞定一个了。。。想想还是GWT好,一个composite widget就很轻松搞定了。。。Android目前还算是垃圾滴。。。

做个ImageItem class存放icon和text:

java 代码
 
  1. public class ImageItem {  
  2.   
  3.     private String text;  
  4.     private Drawable drawable;  
  5.     private boolean isSelectable = true;  
  6.       
  7.     public ImageItem(String text, Drawable drawable) {  
  8.         super();  
  9.         this.text = text;  
  10.         this.drawable = drawable;  
  11.     }  


然后做个View给这个composite view,这里extend了linearlayout,但你也可以使用其他的layout:

java 代码
 
  1. public class ImageItemView extends LinearLayout {  
  2.   
  3.     private TextView text;  
  4.     private ImageView image;  
  5.       
  6.     public ImageItemView(Context context, String title, Drawable drawable) {  
  7.         super(context);  
  8.         this.setOrientation(HORIZONTAL);  
  9.           
  10.         image = new ImageView(context);  
  11.         image.setImageDrawable(drawable);  
  12.         // 左,上,右,下  
  13.         image.setPadding(0252);  
  14. //这里的layout一定要设置,不然无法显示,NND, 竟然default显示设置都没有!!  
  15.         addView(image, new LinearLayout.LayoutParams(  
  16.                 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
  17.           
  18.         text = new TextView(context);  
  19.         text.setText(title);  
  20.         addView(text, new LinearLayout.LayoutParams(  
  21.                 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
  22.     }  


接下来要做个Adapater给我们新建的composite view:
public class ImageItemArrayAdapter extends BaseAdapter {

    private Context context;
    private List<ImageItem> items;
   
    public ImageItemArrayAdapter(Context ctx) {
        context = ctx;
        items = new ArrayList<ImageItem>();
    }

里面要实现getView这个method,这里return上面新建的ImageItemView:

java 代码
 
  1. public View getView(int position, View convertView, ViewGroup parent) {  
  2.         ImageItemView iiv;  
  3.         if (convertView==null) {  
  4.             iiv = new ImageItemView(context, items.get(position).getText(), items.get(position).getDrawable());  
  5.         } else {  
  6.             iiv = (ImageItemView)convertView;  
  7.             iiv.setText(items.get(position).getText());  
  8.             iiv.setImage(items.get(position).getDrawable());  
  9.         }  
  10.         return iiv;  
  11.     }  


最后用一个简单的ListActivity来demo下:

java 代码
 
  1. public class ImageListItemDemo extends ListActivity {  
  2.       
  3.     List<ImageItemView> items;  
  4.   
  5. @Override  
  6.     public void onCreate(Bundle icicle) {  
  7.         super.onCreate(icicle);  
  8.         ImageItemArrayAdapter adapter = new ImageItemArrayAdapter(this);  
  9.         Resources res = this.getResources();  
  10.           
  11.         adapter.addItem(new ImageItem("Home", res.getDrawable(R.drawable.sliderhouse)));  
  12.         adapter.addItem(new ImageItem("Bar", res.getDrawable(R.drawable.bar)));  
  13.         adapter.addItem(new ImageItem("Book Store", res.getDrawable(R.drawable.bookstore)));  
  14.         adapter.addItem(new ImageItem("Cafe", res.getDrawable(R.drawable.cafe)));  
  15.         adapter.addItem(new ImageItem("Drug Store", res.getDrawable(R.drawable.drugstore)));  
  16.         adapter.addItem(new ImageItem("Fitness Center", res.getDrawable(R.drawable.fitness)));  
  17.         adapter.addItem(new ImageItem("Grocery", res.getDrawable(R.drawable.grocery)));  
  18.         adapter.addItem(new ImageItem("Library", res.getDrawable(R.drawable.library)));  
  19.         adapter.addItem(new ImageItem("Movie Theatre", res.getDrawable(R.drawable.movietheater)));  
  20.         adapter.addItem(new ImageItem("Park", res.getDrawable(R.drawable.park)));  
  21.         adapter.addItem(new ImageItem("Restaurant", res.getDrawable(R.drawable.restaurant)));  
  22.         adapter.addItem(new ImageItem("Super Market", res.getDrawable(R.drawable.retail)));  
  23.         adapter.addItem(new ImageItem("School", res.getDrawable(R.drawable.school)));  
  24.           
  25.         setListAdapter(adapter);  
  26.     }  


请看截图,效果不错吧!这个实现我觉得应该在google android API缺省要直接提供,毕竟用到的情况很多很多。

  • 大小: 22.3 KB
分享到:
评论
16 楼 superwb 2008-04-18  
山水之间 写道
我用mwjian,Quake Wang的方法实现时是按照以下代码实现的,但在执行时报错java.lang.ClassCastException.时说类型转换错误吧?但我不清楚是什么错误,麻烦各位达人帮忙看一下,多谢!!
共有两个.java文件,
一个是主文件HelloTwoB .java,代码如下:
package com.google.android.hellotwob;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ListActivity;
import android.os.Bundle;

public class HelloTwoB extends ListActivity {

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setTheme(android.R.style.Theme_Dark);
        setContentView(R.layout.main);
       
 
        //SimpleAdapter demo
        List listitems = fillMaps();
        IconTextAdapter adapter=new IconTextAdapter( this,
        listitems,
        R.layout.list_row,
        new String[]{"icon", "city"},
        new int[]{R.id.icon, R.id.city},
        new int[]{R.drawable.icon_smile, R.drawable.icon_smile},
        R.id.icon );

        setListAdapter(adapter);
    }
   
    private List fillMaps(){
        List items = new ArrayList();
      
        Map i1 = new HashMap();
        i1.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i1.put("city", "Beijing");
        items.add(i1);

        Map i2 = new HashMap();
        i2.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i2.put("city", "Tokyo");
        items.add(i2);
       
        return items;
    }
   
   
}

另一个是文件IconTextAdapter.java,代码如下:
package com.google.android.hellotwob;

import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleAdapter;

public class IconTextAdapter extends SimpleAdapter {
 
private int[] mIcons; 
private int mIconId; 
      
/**
* @param icons  Icon's id will display.
* @param iconId icon in layout's id
*/ 
public IconTextAdapter( Context context,
List data, 
int resource,
String[] from,
int[] to, 
int[] icons,
int iconId ) { 
    super(context, data, resource, from, to); 
  
    mIcons = icons; 
    mIconId = iconId; 

  
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = super.getView(position, convertView, parent); 
    ImageView img = (ImageView) v.findViewById(mIconId); 
    img.setImageResource(mIcons[position]); 
    return v; 
}
}


xml文件有两个:
一个是main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    />
</LinearLayout>

另一个是:list_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImageView id="@+id/icon"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
<TextView id="@+id/city"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
</LinearLayout>

另外还有一个icon,icon_smail.jpg文件
icon_smile.jpg


还有一个问题,List,Map可以如下这样使用吗?
    private List fillMaps(){
        List items = new ArrayList();
      
        Map i1 = new HashMap();
        i1.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i1.put("city", "Beijing");
        items.add(i1);

        Map i2 = new HashMap();
        i2.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i2.put("city", "Tokyo");
        items.add(i2);
       
        return items;
    }

多谢各位了!!!

HashMap j2me好像不支持吧!
15 楼 山水之间 2008-01-23  
我用mwjian,Quake Wang的方法实现时是按照以下代码实现的,但在执行时报错java.lang.ClassCastException.时说类型转换错误吧?但我不清楚是什么错误,麻烦各位达人帮忙看一下,多谢!!
共有两个.java文件,
一个是主文件HelloTwoB .java,代码如下:
package com.google.android.hellotwob;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ListActivity;
import android.os.Bundle;

public class HelloTwoB extends ListActivity {

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setTheme(android.R.style.Theme_Dark);
        setContentView(R.layout.main);
       
 
        //SimpleAdapter demo
        List listitems = fillMaps();
        IconTextAdapter adapter=new IconTextAdapter( this,
        listitems,
        R.layout.list_row,
        new String[]{"icon", "city"},
        new int[]{R.id.icon, R.id.city},
        new int[]{R.drawable.icon_smile, R.drawable.icon_smile},
        R.id.icon );

        setListAdapter(adapter);
    }
   
    private List fillMaps(){
        List items = new ArrayList();
      
        Map i1 = new HashMap();
        i1.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i1.put("city", "Beijing");
        items.add(i1);

        Map i2 = new HashMap();
        i2.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i2.put("city", "Tokyo");
        items.add(i2);
       
        return items;
    }
   
   
}

另一个是文件IconTextAdapter.java,代码如下:
package com.google.android.hellotwob;

import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleAdapter;

public class IconTextAdapter extends SimpleAdapter {
 
private int[] mIcons; 
private int mIconId; 
      
/**
* @param icons  Icon's id will display.
* @param iconId icon in layout's id
*/ 
public IconTextAdapter( Context context,
List data, 
int resource,
String[] from,
int[] to, 
int[] icons,
int iconId ) { 
    super(context, data, resource, from, to); 
  
    mIcons = icons; 
    mIconId = iconId; 

  
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = super.getView(position, convertView, parent); 
    ImageView img = (ImageView) v.findViewById(mIconId); 
    img.setImageResource(mIcons[position]); 
    return v; 
}
}


xml文件有两个:
一个是main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    />
</LinearLayout>

另一个是:list_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImageView id="@+id/icon"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
<TextView id="@+id/city"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
</LinearLayout>

另外还有一个icon,icon_smail.jpg文件
icon_smile.jpg


还有一个问题,List,Map可以如下这样使用吗?
    private List fillMaps(){
        List items = new ArrayList();
      
        Map i1 = new HashMap();
        i1.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i1.put("city", "Beijing");
        items.add(i1);

        Map i2 = new HashMap();
        i2.put("icon", getResources().getDrawable(R.drawable.icon_smile));
        i2.put("city", "Tokyo");
        items.add(i2);
       
        return items;
    }

多谢各位了!!!
14 楼 zhengweiyang1015 2008-01-17  
本人对您的方法非常感兴趣,能否把源代码提供一下,不胜感激,
我的邮箱是zhengweiyang2006@126.com
13 楼 zhengweiyang1015 2008-01-17  
本人对您的方法非常感兴趣,能否把源代码提供一下,不胜感激
12 楼 zhengweiyang 2008-01-09  
[color=darkred][/
引用
[img][/i  gsdfgsdgdsgsdgsdfg   mg][/url][url][flash=200,200][/flash]color]
dfsgsdfgfsdg
11 楼 zhengweiyang1015 2008-01-04  
能否把源代码提供一下,不胜感激!
zhengweiyang2008@126.com
10 楼 lordhong 2008-01-02  
楼上MM站内短信已经回复。
9 楼 newanan 2007-12-19  
lz,xm初学andoid,用您提供的代码自己建了个工程运行了一把,没有出结果,本人对您的方法非常感兴趣,能否把源代码提供一下,不胜感激!
8 楼 bobomtv17 2007-12-13  
楼主是J2ME高手啊
7 楼 lordhong 2007-12-09  
珍爱生命,远离J2ME。。。
6 楼 muscle-liu 2007-12-08  
j2mepolish 里边定义着一个IconItem(extends Item), 很容易实现楼主要噶效果...
5 楼 mwjian 2007-11-30  
根据Quake Wang的提示,实现如下,相当简单
	public class IconTextAdapter extends SimpleAdapter {

		private int[] mIcons;
		private int mIconId;
		
		/**
		 * @param icons	要显示的Icon资源id
		 * @param iconId	icon在layout中的id
		 */
		public IconTextAdapter(Context context, List data,
					int resource, String[] from, int[] to,
					int[] icons, int iconId) {
			super(context, data, resource, from, to);

			mIcons = icons;
			mIconId = iconId;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			View v = super.getView(position, convertView, parent);
			ImageView img = (ImageView) v.findViewById(mIconId);
			img.setImageResource(mIcons[position]);
			return v;
		}
	}
4 楼 小小龙猫 2007-11-23  
hehe,好好学习一下
3 楼 lordhong 2007-11-22  
大哥,你强大啊!如果能把MapView搞进compsite view里面就NB了!
快点啊,拉票人一起参赛啊!
2 楼 QuakeWang 2007-11-22  
这样实现ListVie的Row有点太麻烦了,我想可以用xml composite layout以及google提供的一些内建Class来做,做了一个小实验:
定义layout, row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="horizontal" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView id="@+id/text1" android:layout_width="0dip"
		android:layout_height="fill_parent"
		android:layout_weight="1"/>
	<TextView id="@+id/text2" android:layout_width="0dip"
		android:layout_height="fill_parent"
		android:layout_weight="2"/>		
</LinearLayout>

这里是用2个TextView来做横向排列的组合

在Activity里面就可以这样写了:
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);

		List items = new ArrayList();
		Map i1 = new HashMap();
		i1.put("text", "text1");
		i1.put("icon", "icon1");
		items.add(i1);

		Map i2 = new HashMap();
		i2.put("text", "text2");
		i2.put("icon", "icon2");
		items.add(i2);

		ListAdapter adapter = new SimpleAdapter(this, items, R.layout.row, new String[] { "icon", "text" }, new int[] { R.id.text1, R.id.text2 });

		setListAdapter(adapter);
	}

这里用了SDK提供的SimpleAdapter,来把一个Map通过key值绑定到了layout id上,这样出来了附件的显示效果,距离我们想要的最终效果就是文字和图标的区别。


下一步就是把row.xml中的其中一个TextView替换成ImageView:
	<ImageView id="@+id/icon1" android:layout_width="0dip"
		android:layout_height="fill_parent"
		android:layout_weight="1"/>


由于SimpleAdapter只能绑定到TextView,我们还需要自己写一个IconTextAdapter extends SimpleAdapter,重写里面的绑定数据到ImageView的方法,就能够实现想要的效果了。
可惜SDK里面的android.jar还没有放出源代码来,也没有相关的例子,光看api文档摸索需要一些时间,我就偷懒了, 这个实验就做到此,
1 楼 yongyuan.jiang 2007-11-22  
android不是号称采取gwt前端开发模式吗?

相关推荐

    原生js图片圆形排列按钮控制3D旋转切换插件.zip

    原生js图片圆形排列按钮控制3D旋转切换插件.zip

    类似c++数组的python包

    内含二维数组与三维数组,分别为list2nd,list3rd

    原生js颜色随机生成9x9乘法表代码.zip

    原生js颜色随机生成9x9乘法表代码.zip

    原生js实现图片叠加滚动切换代码.zip

    原生js实现图片叠加滚动切换代码.zip

    【Academic tailor】学术小裁缝必备知识点:全局注意力机制(GAM)TensorFlow

    【Academic tailor】学术小裁缝必备知识点:全局注意力机制(GAM) 注意力机制是深度学习中的重要技术,尤其在序列到序列(sequence-to-sequence)任务中广泛应用,例如机器翻译、文本摘要和问答系统等。这一机制由 Bahdanau 等人在其论文《Neural Machine Translation by Jointly Learning to Align and Translate》中首次提出。以下将详细介绍这一机制的背景、核心原理及相关公式。 全局注意力机制(Global Attention Mechanism, GAM)由 《Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions》提出,是一篇针对计算机视觉任务提出的方法。这篇文章聚焦于增强深度神经网络中通道和空间维度之间的交互,以提高分类任务的性能。与最早由 Bahdanau 等人提出的用于序列到序列任务的注意力机制 不同,这篇文章的重点是针对图像分类任务,并未专注于序

    基于SpringBoot的“篮球论坛系统”的设计与实现(源码+数据库+文档+PPT).zip

    本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等;此文将按以下章节进行开发设计; 第一章绪论;剖析项目背景,说明研究的内容。 第二章开发技术;系统主要使用了java技术, b/s模式和myspl数据库,并对此做了介绍。 第三章系统分析;包罗了系统总体结构、对系统的性能、功能、流程图进行了分析。 第四章系统设计;对软件功能模块和数据库进行详细设计。 第五章系统总体设计;对系统管理员和用户的功能进行描述, 第六章对系统进行测试, 第七章总结心得;在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。

    毕业设计&课设_iOS 商城项目,含购物与商家管理功能,用 Sqlite,有账号示例,适合 iOS 开发练习.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    镗夹具总工艺图.dwg

    镗夹具总工艺图

    原生js树叶数字时钟代码.rar

    原生js树叶数字时钟代码.rar

    近代非线性回归分析-韦博成1989

    近代非线性回归分析-韦博成1989

    Rust语言中冒泡排序算法的高效实现与优化

    内容概要:本文详细介绍了用 Rust 语言实现冒泡排序算法的具体步骤,以及通过设置标志位来优化算法性能的方法。示例代码包括了函数定义、内外层循环逻辑、标志位的应用,并在主函数中展示了如何调用 bubble_sort 函数并显示排序前后的数组。 适合人群:具有基本 Rust 编程基础的学习者和开发者。 使用场景及目标:适用于想要深入了解 Rust 中冒泡排序实现方式及其优化技巧的技术人员。通过本篇文章,能够掌握 Rust 基本语法以及算法优化的基本思想。 阅读建议:除了仔细阅读和理解每一部分的内容外,还可以尝试修改代码,改变数据集大小,进一步探索冒泡排序的时间复杂度和优化效果。此外,在实际应用时也可以考虑引入并发或其他高级特性以提升性能。

    培训课件 -安全隐患分类与排查治理.pptx

    培训课件 -安全隐患分类与排查治理.pptx

    1-中国各地级市的海拔标准差-社科数据.zip

    中国各地级市的海拔标准差数据集提供了298个地级市的海拔变异性信息。海拔标准差是衡量某地区海拔高度分布离散程度的统计指标,它通过计算各测量点海拔与平均海拔之间的差异来得出。这一数据对于评估地形起伏对网络基础设施建设的影响尤为重要,因为地形的起伏度不仅会增加建设成本,还会影响信号质量。此外,由于地形起伏度是自然地理变量,它与经济社会因素关联性较小,因此被用作“宽带中国”试点政策的工具变量,以研究网络基础设施建设对经济的影响。数据集中包含了行政区划代码、地区、所属省份、所属地域、长江经济带、经度、纬度以及海拔标准差等关键指标。这些数据来源于地理空间数据云,并以Excel和dta格式提供,方便研究者进行进一步的分析和研究。

    YOLO算法的原理与实现.pdf

    YOLO算法的原理与实现

    机器学习用于视网膜病变预测:使用 XGBoost 揭示年龄和HbA1c 的重要性 -论文

    视网膜病变是糖尿病和高血压的主要微血管并发症。如果不及时治疗,可能会导致失明。据估计,印度三分之一的成年人患有糖尿病或高血压,他们未来患视网膜病变的风险很高。我们研究的目的是检查糖化血红蛋白 (HbA1c)、血压 (BP) 读数和脂质水平与视网膜病变的相关性。我们的主要假设是,血糖控制不佳(表现为高 HbA1c 水平、高血压和异常脂质水平)会导致视网膜病变风险增加。我们使用眼底照相机筛查了 119 名印度患者的视网膜病变,并获取了他们最近的血压、HbA1c 和血脂谱值。然后,我们应用 XGBoost 机器学习算法根据他们的实验室值预测是否存在视网膜病变。我们能够根据这些关键生物标志物高精度地预测视网膜病变。此外,使用 Shapely Additive Explanations (SHAP),我们确定了对模型最重要的两个特征,即年龄和 HbA1c。这表明血糖控制不佳的老年患者更有可能出现视网膜病变。因此,这些高风险人群可以成为早期筛查和干预计划的目标,以防止视网膜病变发展为失明。

    RL Base强化学习:信赖域策略优化(TRPO)算法TensorFlow实现

    在强化学习(RL)领域,如何稳定地优化策略是一个核心挑战。2015 年,由 John Schulman 等人提出的信赖域策略优化(Trust Region Policy Optimization, TRPO)算法为这一问题提供了优雅的解决方案。TRPO 通过限制策略更新的幅度,避免了策略更新过大导致的不稳定问题,是强化学习中经典的策略优化方法之一。

    Spring 应用编译为原生可执行文件.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    1-中国各地区普通小学毕业生数(1999-2020年)-社科数据.zip

    这组数据涵盖了1999至2020年间中国各地区普通小学毕业生的数量。它为我们提供了一个深入了解中国教育领域中普通小学阶段教育水平和教育资源分配情况的窗口。通过分析这些数据,可以为制定科学合理的教育政策提供依据,同时,通过比较不同城市的普通小学毕业生数,也能为城市规划和劳动力市场调查提供参考。数据来源于中国区域统计年鉴和中国各省市统计年鉴,包含了8472个样本,以面板数据的形式呈现。这些数据对于掌握中国教育态势具有重要的参考价值。

    原生js制作拖拽排列排序代码.zip

    原生js制作拖拽排列排序代码.zip

    PixPin截图工具,非常好用的一款截图工具

    PixPin截图工具,非常好用的一款截图工具

Global site tag (gtag.js) - Google Analytics