当前位置:首页 > 谈天说地

Android Spinner和GridView组件的使用示例

34资源网2022-03-31557

一. 概述:

        spinner是我们所熟悉的下拉框列表。与listview类似,我们必须为spinner对象指定一个adapter。我们从spinner的简单用法开始讲述。

二. 实现

mainactivity.java

package com.example.demo03_29;
 
import androidx.appcompat.app.appcompatactivity;
 
import android.os.bundle;
import android.view.view;
import android.widget.adapter;
import android.widget.adapterview;
import android.widget.arrayadapter;
import android.widget.spinner;
import android.widget.textview;
 
public class mainactivity extends appcompatactivity implements adapterview.onitemselectedlistener {
    textview choice;
    arrayadapter<charsequence> adapter;
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
 
        choice=(textview) this.findviewbyid(r.id.choice);
 
        spinner spinner=(spinner)this.findviewbyid(r.id.sp1);
        adapter=arrayadapter.createfromresource(this, r.array.habit,
                android.r.layout.simple_spinner_item);
        adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
        spinner.setadapter(adapter);
        spinner.setonitemselectedlistener(this);
    }
 
 
    @override
    public void onitemselected(adapterview<?> adapterview, view view, int i, long l) {
        choice.settext(adapter.getitem(i));
    }
 
    @override
    public void onnothingselected(adapterview<?> adapterview) {
 
    }
}

在values包下的  string.xml

<resources>
    <string name="app_name">demo03-29</string>
<string-array name="habit">
    <item>10公里夜跑</item>
    <item>爬山</item>
    <item>游泳</item>
    <item>吃饭</item>
    <item>打代码</item>
</string-array>
</resources>

activity_main.xml 

<?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"
    tools:context=".mainactivity">
 
    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <textview
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="你喜欢的运动"/>
        <spinner
            android:id="@+id/sp1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </linearlayout>
 
    <view
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="#05adf8"/>
 
    <textview
        android:id="@+id/choice"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        />
</linearlayout>

sipnner_down.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/p01"
        android:layout_width="64dp"
        android:layout_height="64dp"
        />
    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <textview
        android:id="@+id/t1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <textview
        android:id="@+id/t2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    </linearlayout>
 
</linearlayout>

         这个布局比较简单,就是在linearlayout中放置一个linearlayout、一个分隔组件用的view和一个显示所选结果的textview。在其中嵌套的linearlayout中放置一个用于提示用的textview和下拉框spinner。

三. 美化

myadapter.java 

package com.example.demo03_29;
 
import android.content.context;
import android.view.layoutinflater;
import android.view.view;
import android.view.viewgroup;
import android.widget.arrayadapter;
import android.widget.imageview;
import android.widget.textview;
 
import androidx.annotation.nonnull;
 
public class myarrayapater extends arrayadapter {
    private layoutinflater minflater;
    string[] titles;
    string[] desc={
            "集成工具",
            "高速保存,随时存储",
            "优质资源,尽在迅雷",
            "集成开发工具",
            "学习神器"
    };
    int[] photos={r.drawable.p1,r.drawable.p2,r.drawable.p3,r.drawable.p4,r.drawable.p5};
 
    public myarrayapater(@nonnull context context, int resource, charsequence[] objects) {
        super(context, resource, objects);
 
        minflater=(layoutinflater) context.getsystemservice(context.layout_inflater_service);
        titles=context.getresources().getstringarray(r.array.habit);
    }
    @override
    public int getcount(){
        return titles.length;
    }
    @override
    public view getdropdownview(int position, view convertview, viewgroup parent){
        view v;
        v=minflater.inflate(r.layout.spinner_down,parent,false);
 
        imageview iv=(imageview)v.findviewbyid(r.id.p01);
        iv.setimageresource(photos[position]);
        textview tv01=(textview) v.findviewbyid(r.id.t1);
        tv01.settext(titles[position]);
        textview tv02=(textview) v.findviewbyid(r.id.t2);
        tv02.settext(desc[position]);
        return v;
    }
}

修改 mainactivity.java

四. gridview

       gridview以二维表格的方式显示数据,若数据比较多,该组件将提供垂直滚动条。我们用一个列子来说明gridview的使用方法。

activity_main.xml 

<?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"
    tools:context=".mainactivity">
 
    <gridview
        android:id="@+id/gr1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numcolumns="4"
        />
 
</linearlayout>

 imgeadapter.java

package com.example.demo0330;
 
import android.content.context;
import android.view.view;
import android.view.viewgroup;
import android.widget.baseadapter;
import android.widget.gridview;
import android.widget.imageview;
 
public class imageadapter extends baseadapter {
    private int[] images={
            r.drawable.p1, r.drawable.p2, r.drawable.p3, r.drawable.p4,
            r.drawable.p1, r.drawable.p2, r.drawable.p3, r.drawable.p4,
            r.drawable.p1, r.drawable.p2, r.drawable.p3, r.drawable.p4,
            r.drawable.p1, r.drawable.p2, r.drawable.p3, r.drawable.p4,
            r.drawable.p1, r.drawable.p2, r.drawable.p3, r.drawable.p4,
 
    };
    private context context;
    public imageadapter(context context){
        this.context=context;
    }
 
 
    @override
    public int getcount() {
        return images.length;
    }
 
    @override
    public object getitem(int position) {
        return images[position];
    }
 
    @override
    public long getitemid(int position) {
        return position;
    }
 
    @override
    public view getview(int position, view convertview, viewgroup parent) {
        imageview imageview;
        if (convertview==null){
            imageview=new imageview(context);
            int width= gridview.layoutparams.match_parent;
            int heght= gridview.layoutparams.match_parent;
            imageview.setlayoutparams(new viewgroup.layoutparams(width,heght));
            imageview.setscaletype(imageview.scaletype.center_inside);
        }else{
            imageview=(imageview) convertview;
        }
        imageview.setimageresource(images[position]);
        return imageview;
    }
}

mainactivity.java

package com.example.demo0330;
 
import androidx.appcompat.app.appcompatactivity;
 
import android.os.bundle;
import android.view.view;
import android.widget.adapterview;
import android.widget.gridview;
import android.widget.toast;
 
public class mainactivity extends appcompatactivity {
 
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
 
        gridview gridview=(gridview) findviewbyid(r.id.gr1);
        gridview.setadapter(new imageadapter(this));
        gridview.setonitemclicklistener(new adapterview.onitemclicklistener() {
            @override
            public void onitemclick(adapterview<?> adapterview, view view, int position, long l) {
                toast.maketext(mainactivity.this,"现在点击的是位置在"+(position+1)+"张照片",toast.length_long).show();
            }
        });
    }
}

效果图:

到此这篇关于android spinner和gridview组件的使用示例的文章就介绍到这了,更多相关android spinner内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

快手极速版二维码

快手极速版新人见面礼

除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

邀请两个好友奖最高196元,如下图所示:

快手极速版邀请好友奖励

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/11465.html

分享给朋友:

相关文章

微信公众号阅读量暴跌,是凉了吗?还是另有乾坤

微信公众号阅读量暴跌,是凉了吗?还是另有乾坤

这两年,不少媒体同行/KOL都陆续唱衰公众号,说公众号凉凉了,没人看了。用「已死」「危机」「没有未来」形容,而短视频才是最火爆的。这种情况在订阅号改版成信息流推荐后,情况更盛。…

带货直播运营怎么做(直播公司盈利模式)

带货直播运营怎么做(直播公司盈利模式)

直播网红千千万,谁能争当NO.1?随着直播崛起,越来越多的人想要入场分一杯羹,BUT,80%的人都不懂直播运营的内容法则。那么,新手主播怎么玩才能快速脱颖而出呢?掌握这四大直播运营的内容规则,人气轻松翻倍!1. 直播内容多样化…

软件解压后怎么安装(手机解压软件app免费软件)

软件解压后怎么安装(手机解压软件app免费软件)

在PC端宅男、极客们会碰到需要解压缩文件的情况,这个时候大多会用到360压缩或者好压等第三方软件,然而到了移动手机端,由于自带的文件管理器大多不支持输入密码解压缩等复杂操作,让不少人对于手机解压缩文件失望,但是有时候电脑不在身边,又不得不在…

融资丨「大湾生物」完成近千万美元A轮融资,比邻星创投及高瓴创投共同领投

融资丨「大湾生物」完成近千万美元A轮融资,比邻星创投及高瓴创投共同领投

创业邦获悉,近日,大湾生物有限公司(以下简称:大湾生物)宣布完成近千万美元A轮融资,由比邻星创投与高瓴创投共同领投,阿隆资本跟投以及阿里巴巴香港创业者基金等现有投资者追加投资。本轮融资将加快大湾生物全球创新的三大人工智能平台,分别是智能化细…

ipad怎么录音转文字(分享3个录音转文字的方法)

ipad怎么录音转文字(分享3个录音转文字的方法)

在我们日常工作和日常学习中,我们在一些需要将话语内容给记录下来的场合,通常会选择录音,这样之后我们可以进行反复听写并整理成文稿。但随着科技的不断发展,我们现在不仅可以直接录音,还可以直接把音频文件转换成文字,这样就不需要我们自己对音频文件进…

淘宝抢购插件手机版(天猫自动抢购秒杀软件)

淘宝抢购插件手机版(天猫自动抢购秒杀软件)

今天已经是九月份了,没有参与“九月你好”抽奖活动的赶紧去参与吧。 曾经分享过的小助手(秒抢助手)最近又开始更新了,最近版本1.8.1,关键词参考文末的关键词进行下载。 今天分享一款同作者的点击器,各位一直都在找,终于带给大家了。 01 软件…