Spinner小记

同济土木非0基础三个月跨考复旦计算机攻略 跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课 阅读详情
 

一、Activity部份代码

// Generate spinner entries using XML arrays

intvisiblelimitValuesId= R.array.account_settings_down_count_values;

intvisiblelimitEntriesId= R.array.account_settings_down_count_entries;

CharSequence[] visiblelimitValues = getResources().getTextArray(visiblelimitValuesId);

CharSequence[] visiblelimitEntries = getResources().getTextArray(visiblelimitEntriesId);

// Now create the array used by the Spinner

SpinnerOption[] checkVisiblelimits =newSpinnerOption[visiblelimitEntries.length];

for(inti = 0; i < visiblelimitEntries.length; i++) {

checkVisiblelimits[i] =newSpinnerOption(

Integer.valueOf(visiblelimitValues[i].toString()), visiblelimitEntries[i].toString());

}

ArrayAdapter<SpinnerOption> checkVisiblelimitsAdapter =newArrayAdapter<SpinnerOption>(this,android.R.layout.simple_spinner_item, checkVisiblelimits);

checkVisiblelimitsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

downloadCount.setAdapter(checkVisiblelimitsAdapter);

SpinnerOption.setSpinnerOptionValue(downloadCount,VISIBLE_LIMIT_DEFAULT);

二、SpinnerOption代码

publicclassSpinnerOption {

publicfinalObjectvalue;

publicfinalStringlabel;

publicstaticvoidsetSpinnerOptionValue(

Spinner spinner, Object value) {

for(inti = 0, count = spinner.getCount(); i < count; i++) {

SpinnerOption so = (SpinnerOption)spinner.getItemAtPosition(i);

if(so.value.equals(value)) {

spinner.setSelection(i,true);

return;

}

}

}

publicSpinnerOption(Object value, String label) {

this.value= value;

this.label= label;

}

@Override

publicString toString() {

returnlabel;

}

三、如何获取Spinner选中项值

intvisibelLimit = (Integer)((SpinnerOption)downloadCount.getSelectedItem()).value;

四、

<PreferenceCategory android:title="@string/account_settings_download_title">

<ListPreference

android:layout="?android:attr/preferenceLayoutChild"

android:dependency="account_down"

android:key="account_settings_down"

android:defaultValue="never"

android:title="@string/account_settings_download_title"

android:entries="@array/account_settings_down_entries"

android:entryValues="@array/account_settings_down_values"

android:dialogTitle="@string/account_settings_download_title"

/>

</PreferenceCategory>

--------------------------------------------------------------------------

实例: 主要目的假如在values.xml文件中已定义6个StringArrays的Item的项目,在Spinner中属性已定义Entries绑定了数据,不修改这2个文件下修改代码,只显示4个Item。

意思是重新绑定下即可。

java代码

package luokan.commonui;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Spinner spinner;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		spinner = (Spinner) findViewById(R.id.spinner);
		/*
		 * ArrayAdapter arrayadp = ArrayAdapter.createFromResource(this,
		 * R.array.spinner_arrays,android.R.layout.simple_spinner_item);
		 */
		
		int arraysValueID = R.array.spinner_arrays;
		String[] entriesValue = getResources().getStringArray(
				arraysValueID);
		/*new arrays */
		SpinnerOption[] optionsValue = new SpinnerOption[entriesValue.length-2];
		for (int i = 0; i < optionsValue.length; i++) {
			optionsValue[i] = new SpinnerOption(entriesValue[i].toString());
		}
		ArrayAdapter<SpinnerOption> arrayadp = new ArrayAdapter<SpinnerOption>(
				this, android.R.layout.simple_spinner_item, optionsValue);
		arrayadp.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item);
		spinner.setAdapter(arrayadp);
		spinner.setPrompt("信息:");
		
		//SpinnerOption.setSpinnerOptionValue(spinner,"");	
		
/*		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				Toast.makeText(getApplicationContext(), position + "", 0)
						.show();
			}

			public void onNothingSelected(AdapterView<?> parent) {

				Toast.makeText(getApplicationContext(), "ʲôҲûѡ", 0).show();
			}
		});*/
	}
}

一个放新数组的类:

package luokan.commonui;

import android.widget.Spinner;

public class SpinnerOption {
	public String value;
	public SpinnerOption(String value) {
		this.value = value;
	}
	public static void setSpinnerOptionValue(Spinner spinner, Object value) {
		for (int i = 0, count = spinner.getCount(); i < count; i++) {
			SpinnerOption so = (SpinnerOption) spinner.getItemAtPosition(i);
			//if (so.value.equals(value)) {
				spinner.setSelection(i, true);
				return;
		//	}
		}
	}
	@Override
	public String toString() {
		return value;
	}
	
}



    <Spinner
    android:id="@+id/spinner"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_arrays"
    >
    </Spinner>

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="hello">Hello World, MainActivity!</string>
 <string name="app_name">常用Ui</string>
 <string-array name="spinner_arrays">
  <item>abc</item>
  <item>edf</item>
  <item>sss</item>
  <item>eeee</item>
  <item>fffffff</item>
 <item>tttt</item>
</string-array>
</resources>

 

 

 --------------------------------------------------------------spinner在dialog对话框内的使用,,,-----------在Activity消亡之前把dialog。dismiss掉;否则发生窗口泄漏异常。

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;

public class Activity03 extends Activity implements AdapterView.OnItemSelectedListener{

 private final static int DIALOG_PAUSED_ID = 1;
 private TextView text,myTextView2;
 private View mView;
 AlertDialog alert;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.three);
  mView = getLayoutInflater().inflate(R.layout.spinner, null);
        Spinner spinner = ((Spinner) mView.findViewById(R.id.spinner));
        
      //  spinner.setSelection(1);
        spinner.setOnItemSelectedListener(this);
  findViewById(R.id.myButton03).setOnClickListener(new OnClickListener(){
   public void onClick(View v) {
   // showDialog(DIALOG_PAUSED_ID);
    createDialog();
   }
   
  });
  text = (TextView) findViewById(R.id.myTextView03);
  myTextView2 = (TextView)mView.findViewById(R.id.myTextView2);
 }
 
 
    @Override
    protected Dialog onCreateDialog(int id) {
        if (id == DIALOG_PAUSED_ID) {
         //   return createDialog();
        }
        return null;
    }
    
    public void createDialog(){
     Log.i("other", "come on");
        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setMessage("Are you sure you want to exit?") 
                .setCancelable(false)
                .setView(mView)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
                    public void onClick(DialogInterface dialog, int id) { 
                       //  MyActivity.this.finish(); 
                     dialog.cancel();
                    } 
                }) 
                .setNegativeButton("No", new DialogInterface.OnClickListener() { 
                    public void onClick(DialogInterface dialog, int id) { 
                         dialog.cancel(); 
                    } 
                }); 
         alert = builder.create(); 
         alert.show();
    }


 public void onItemSelected(AdapterView<?> parent, View view, int position,
   long id) {
 // myTextView2.setText(position);
 }


 public void onNothingSelected(AdapterView<?> parent) {
  // TODO Auto-generated method stub
  
 }
/* @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if(keyCode == KeyEvent.KEYCODE_HOME){
   Log.i("other", "alert dismiss..come on");   
   finish();
  }
  return super.onKeyDown(keyCode, event);
 }*/
 @Override
 protected void onPause() {
  Log.i("other", "alert dismiss..come on");
       if (alert != null) {
        alert.dismiss();
        alert = null;
         }
  super.onPause();
 }
}


mainifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="mars.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Activity01"
                  android:label="@string/app_name"  
                  android:taskAffinity="mars.activity.Activity01"
                android:clearTaskOnLaunch="true"
                android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity02" android:clearTaskOnLaunch="true"
                  android:label="@string/app_name" >
      
        </activity>
   <activity android:name=".Activity03"
                  android:label="@string/app_name"
                    android:configChanges="orientation|keyboardHidden"
               >

        </activity>
    </application>
    <uses-sdk android:minSdkVersion="5" />

</manifest> 


 

 

 

 

 

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署) 🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨ 阅读详情

相关推荐

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。

2402_82802238的博客 2801

Spinner控件简单应用

一、     Activity部份代码 // Generate spinner entries using XML arrays int visiblelimitValuesId = R.array.account_settings_down_count_values; int visiblelimitEntriesId = R.array.account_settings_down_coun

Viktor的专栏 505

vivado下ECO操作-不重新综合实现修改属性并生成.bit

ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要

4657

Spinner的使用(android:entries指定列表项)

列表添加列表项有两种方法:,下面例子: - spinner1通过android:entries指定了列表的项数组 - spinner2通过ArrayAdapter适配器使用数组来确定列表项 activity_main.xml &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" a...

nic's blog 7375

iPhone免越狱Git服务器搭建教程-iSH

iPhone免越狱Git服务器搭建教程

jts666的博客 4428

wsl2 配置ubuntu 固定ip

wsls ubuntu 设置固定ip

musk1212的博客 2618

android如何创建xml的array资源

来自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0105/2263.html PreferenceActivity的选项设置布局文件中,有ListPreference元素的属性android:entries和android:entryValues需要用到array。

loadingru的博客 4476

如何使用 ABAP 代码调度一个 ABAP 程序,让其以后台作业的方式运行

笔者之前的教程,介绍了如何使用 SM36 一系列事务码,将一个 ABAP 程序,调度成以后台作业方式运行的详细步骤。 38. 如何让 ABAP 报表在后台作业的模式下运行 大家如果照着上述文章的步骤走一遍,会发现这些手动执行的步骤还是有些繁琐的。 有没有可能让这一切都自动化起来,即通过 ABAP 代码去完成呢?当然可以。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1944

java数组r.id_Android HelloViews Spinner教程R.id和R.array无法解析

我遇到了Android HelloViews Spinner教程的问题. HelloSpinner.java中的错误表明“R.id无法解析”和“R.array无法解析”. AndroidManifest.xml中的错误指出“找不到与给定名称匹配的资源(在’label’处,值为’@ string / app_name’)”和“找不到与给定名称匹配的资源”(在’label’处值’@ string / ...

weixin_34739699的博客 317

cdk&java | 分子sdf文件生成

sdf

ASKCOS博客 1089

基于投影法实现扫描文件的光学字符分割——Matlab实现

投影法是指将原图像沿着某个特定的方向进行投影,得到投影线上的像素点的个数或像素值总和,从而可以得到该方向上物体的轮廓信息。对于字符分割,我们可以将图像进行水平和垂直两个方向的投影,从而得到字符之间的分割线。在OCR技术中,字符分割是非常重要的一步骤,因为字符之间的分割对字符识别的准确性有很大的影响。通过对投影值的判断,可以求出字符之间的分割线,这里我们根据垂直方向上的投影值进行判断,选取一个阈值进行筛选即可。使用sum()函数分别计算出水平和垂直方向上的投影值,得到每一行和每一列的投影值。

TechGlide的博客 582

Spinner下拉框绑定并获取值

作者:李永健 撰写时间:2020年 05月28日 开发工具与关键技术:studio64,Android 方法一: 2、Activity 方法二: 1、 在res/values/strings.xml文件里写绑定的数据如下图: 2、在fragent_home.xml文件添加android:entries如下图: 获取值方法一: 获取值方法二: ...

weixin_44548843的博客 292

uniApp微信小程序:利用live-pusher人脸活体检测功能+完整示例代码,uniapp使用live-pusher直播推流组件实现人脸验证-活体检测,检测人脸中的动作包括眨眼、张嘴、左右摇头动作

UniApp 使用 live-pusher 实现人脸活体检测(附完整源码)uniapp开发微信小程序人脸检测活体检测,在uni-app的微信小程序项目中使用live-pusher实现人脸识别,uniapp使用live-pusher实现模拟人脸识别效果,张张嘴、眨眨眼、向左摇头、向右摇头等动作,免费使用人脸活体检测的插件方案,uniapp小程序怎么免费使用人脸活体,直播推流,UNIAPP微信小程序使用live-pusher实现人脸识别(拍照)功能,在uni-app项目中实现人脸识别,既使用uni-app中的l

✅ 精选推荐文章 3013

android弹窗闪退,[Android 小记] PopupWindow中放置Spinner 点击直接闪退的问题分析

错误原因:android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@5ec06ba is not valid; is your activity running?Spinner有个可以设置Item弹出的样式的属性:android:spinnerMod...

weixin_30188669的博客 454

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android小记

1.去除android状态栏(含运营商,wifi的一栏) android:theme="@android:style/Theme.NoTitleBar.Fullscreen" View Code 2.去除标题栏:不加Fullscreen 3.spinner下拉框挡住spinner(解决方法): <Spinner android:id="...

weixin_30649641的博客 143

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Unity X C#小记之控制Object(物体)的Rotate(转动)

基于教材《Learning C# by Developing Games with Unity 3D Beginner's Guide》的第六章by Terry Norton 解释了如何通过C#的编程,在Unity中使用按键来控制物体的旋转。 另外带了点小吐槽。

AlexDialga的博客 2295

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

一步一步自定义spinner

spinner就是下拉选择组件,系统自带的spinner使用起来非常方便,首先定义一个array(strings.xml),如下:&lt;array name="grade"&gt; &lt;item&gt;一年级&lt;/item&gt; &lt;item&gt;二年级&lt;/item&gt; &lt;item&gt;三年级&lt;/item&gt;

公众号:BennuCTech 3232

Spinner怎么获取值赋值到页面

String Industry[]=EntryEnterpriseActivity.this.getResources().getStringArray(R.array.profession_item); for (int i = 0; i if (industry.equals(Industry[i])) { spinnerIndustry.setSelection(i); }

zhouxuebao87的专栏 1687

Android 图表开源框架之MPAndroidChart PieChart扇形图(二)

Android 图表开源框架之MPAndroidChart PieChart扇形图(一) Android 图表开源框架之MPAndroidChart PieChart扇形图,版本:3.0.1 implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1' 效果图1: 效果图2: 一.具体实现: 1.主函数代码: import android.graphics.Color; import android.support.v7.app

shenggaofei的博客 1041

Android为spinner设置适配器,Spinner组件中适配器的使用

在Spinner组件中个可以使用两种适配器,首先是比较常用的适配器String[]list={"测试1","测试2","测试3"};ArrayAdapteradapter=newArrayAdapter(this,android.R.layout.simple_spinner_item,list);//用android的原生样式simple_spinner_itemspinner.setAda...

weixin_29279153的博客 1552

strings.xml中定义数组(spinner中entries属性)

spinner中的条目可存储到数组中,而其布局文件可设置entries属性: android:entries="@array/xxx_array" 该array可存于values文件夹下的strings.xml中 name="xxx_array"> 条目1 条目2

我是正直的技术小白 2551

Spinner android:entries属性

Spinner android:entries属性

朱立火的学习记录 9097

Android Visualizer 实战:把声音画出来

是系统提供的音频效果(AudioEffect)之一。它挂在音频链路上,,把数据回吐给你——画波形、画频谱、做响度表。

Android的专栏 273

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 328

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 201

安卓部署Linux性能实测:一颗移动处理器,能否胜任日常 Linux 开发?

本文通过在一加Ace5上部署NimoteCode的ARM64 Linux环境,测试了其在CoreMark、SQLite编译及并行构建中的表现。结果显示,尽管单核性能约2.34GHz,多核扩展比达6.15×,但优化编译耗时仍高达35秒,反映移动处理器虽具备一定开发能力,却受限于文件系统开销与运行环境(如PRoot)。实际开发中,非优化构建效率较高,而并行编译可显著提速。结论:安卓手机可作为轻量级开发辅助工具,但无法替代桌面环境,真正价值在于便携性与即时响应,而非全功能替代。

一个不知名码农的专栏 325
上一篇: Android一些常用知识和代码(不断更新)
下一篇: Source Insight 3.5 序列号
anskya520
博客等级 码龄20年 46粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值