1. 程式人生 > >Android開發介面卡系列:Spinner繫結ArrayAdapter介面卡

Android開發介面卡系列:Spinner繫結ArrayAdapter介面卡

package com.andieguo.spinnerdemo;

import java.util.ArrayList;
import java.util.List;

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

public class MainActivity extends Activity {

	private static final String[] m = { "北京", "上海", "重慶", "廣州", "深圳" };
	private List<String> countries;
	private TextView textview;
	private EditText editText;
	private Spinner spinner;
	private TextView textview2;
	private Spinner spinner2;
	private ArrayAdapter<String> adapter;
	private ArrayAdapter adapter2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		countries = new ArrayList<String>();
		for (int i = 0; i < m.length; i++) {// 將陣列轉化成list集合,方便adapter.add()操作
			countries.add(m[i]);
		}
		// =============使用List集合作為資料來源
		// ===================================================//
		spinner = (Spinner) findViewById(R.id.spinner);
		textview = (TextView) findViewById(R.id.spinnerText);
		editText = (EditText) findViewById(R.id.editText);

		// 將可選內容與ArrayAdapter連線起來
		adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, countries);
		// 設定下拉列表的風格
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		// 將adapter 新增到spinner中
		spinner.setAdapter(adapter);
		// 新增事件Spinner事件監聽
		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				textview.setText("你的城市是:" + adapter.getItem(position));
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
				// TODO Auto-generated method stub
			}
		});
		// 設定預設值
		spinner.setVisibility(View.VISIBLE);

		// =============使用XML作為資料來源
		// ===================================================//
		spinner2 = (Spinner) findViewById(R.id.spinner2);
		textview2 = (TextView) findViewById(R.id.spinnerText2);
		// 將可選內容與ArrayAdapter連線起來
		adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes,
				android.R.layout.simple_spinner_item);
		// 設定下拉列表的風格
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		// 將adapter 新增到spinner中
		spinner2.setAdapter(adapter2);
		// 新增事件Spinner事件監聽
		spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				textview2.setText("你的手機型號是:" + adapter2.getItem(position));
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
				// TODO Auto-generated method stub
			}
		});
		// 設定預設值
		spinner2.setVisibility(View.VISIBLE);

	}

	public void add(View v) {
		String newCountry = editText.getText().toString();
		// 先比較新增的值是否存在,不存在才可以新增
		for (int i = 0; i < adapter.getCount(); i++) {
			if (newCountry.equals(adapter.getItem(i))) {
				Toast.makeText(this, "該城市已存在", 1).show();
				editText.setText("");
				return;
			}
		}
		if (!newCountry.equals("")) {
			adapter.add(newCountry);
			int position = adapter.getPosition(newCountry);
			spinner.setSelection(position);
			editText.setText("");
			Toast.makeText(this, "新增城市成功", 1).show();
		}
	}

	public void delete(View v) {
		if(spinner.getSelectedItem()!= null){
			//刪除spinner值
			adapter.remove(spinner.getSelectedItem().toString());
			textview.setText("你的城市是:" +"");
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

相關推薦

Android開發介面卡系列SpinnerArrayAdapter介面卡

package com.andieguo.spinnerdemo; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import andro

(轉)Android開發書籍推薦從入門到精通系列學習路線書籍介紹

成長 程序員 理論 targe base 官方 app als 自己的 Android開發書籍推薦:從入門到精通系列學習路線書籍介紹 轉自:http://blog.csdn.net/findsafety/article/details/52317506 很多時候我們都會

Android Spinner 鍵值對

這裡給大家提供下繫結 spinner鍵值對的方法。 首先建立繫結模型BaseItem public class BaseItem { public BaseItem(Integer id,String value){ this.setId(i

基於gin的golang web開發模型

在前兩篇文章介紹路由的時候,我們瞭解到gin可用通過類似DefaultQuery或DefaultPostForm等方法獲取到前端提交過來的引數。引數不多的情況下也很好用,但是想想看,如果介面有很多個引數的時候再用這種方法就要呼叫很多次獲取引數的方法,本文將介紹一種新的接收引數的方法來解決這個問題:模型繫結。

【轉載】Android Bug分析系列第三方平臺安裝app啟動後,home鍵回到桌面後點擊app啟動時會再次啟動入口類bug的原因剖析

特殊 返回 androidm android系統 圖片 管理 相關 OS 簡便 前言   前些天,測試MM發現了一個比較奇怪的bug。   具體表現是:   1、將app包通過電腦QQ傳送到手機QQ上面,點擊安裝,安裝後選擇打開app (此間的應用邏輯應該是要觸發 【閃屏頁

Android RxJava 實戰系列優雅實現 網路請求巢狀回撥

轉自-----http://blog.csdn.net/carson_ho/article/details/78315696,請為大神打call 前言 Rxjava,由於其基於事件流的鏈式呼叫、邏輯簡潔 & 使用簡單的特點,深受各大 Android

android簡訊小程式之CursorAdapterListView

同步查詢繫結: mListView = findViewById(R.id.id_containers); //定義uri mALL_conversation_uri = Telephony.Threads.CONTENT_URI.buildUpon().appendQueryParame

Android開發技巧之QQ第三方登入(二)

接 android QQ第三方登入(一)  獲取登入使用者名稱資訊,這邊先抱怨一下,官方API有點坑 Constants原始碼類下就是找不到GRAPH_SIMPLE_USER_INFO這個屬性!無語! 根據官方提供返回的的JSONObject資訊解析:

Android開發技巧之QQ第三方登入(一)

使用的是Android_SDK_V2.9.1,建議使用最新版; 官方下載:SDK下載  Android studio 中新增到 然後在點選build.gradle檔案新增 配置AndroidManifest 在應用的Andr

前端開發之vue之資料

  2.1. 什麼是雙向繫結? Vue框架很核心的功能就是雙向的資料繫結。 雙向是指:HTML標籤資料 繫結到 Vue物件,另外反方向資料也是繫結的。通俗點說就是,Vue物件的改變會直接影響到HTML的標籤的變化,而且標籤的變化也會反過來影響Vue物件的屬性的變化。 這樣一來

搭建自己的部落格(二十八)增加郵箱的功能,完善使用者資訊

1、郵箱伺服器使用了騰訊伺服器 具體操作見:python自動發郵件 2、變化的部分 3、上程式碼: {# 引用模板 #} {% extends 'base.html' %} {% load staticfiles %} {% load comment_tags %}

三週學會小程式第四講Heroku Github 自動部署

這一講是根據讀者的反饋補充的一個講解,好多讀者反應安裝 Heroku-cli 遇到問題,或者是操作繁瑣,其實上一講中提到的 Heroku 只是為了免費部署,而安裝 Heroku-CLI只是為了部署,所以小編分享給大家一個很方便的部署方式,這樣就可以少學習一個命令了。 這種方式簡單到你只要 Push 程式碼到

<label>定義和用法 <label> 標籤為 input 元素定義標註(標記)。 label 元素不會向用戶呈現任何特殊效果。不過,它為滑鼠使用者改進了可用性。如果您在 label 元素內點選文字,就會觸發此控制元件。就是說,當用戶選擇該標籤

Spring Boot 2.0 新特性(一)配置 2.0 全解析

在Spring Boot 2.0中推出了Relaxed Binding 2.0,對原有的屬性繫結功能做了非常多的改進以幫助我們更容易的在Spring應用中載入和讀取配置資訊。下面本文就來說說Spring Boot 2.0中對配置的改進。 配置檔案繫結 簡單型別 在S

Angular學習筆記29事件

事件繫結     前面的繫結都是按照 : 元素到元件的方式     但是在一個頁面不可能只是資料展示給使用者,而使用者對頁面沒有任何操作,不能進行和頁面的互動操作,在與用的互動操作時,怎麼才能知道使用者進行了怎麼樣的操作和互動呢? &n

【Vue.js學習筆記】6動態CSS樣式,條件渲染和v-show

動態繫結CSS樣式 這部分涉及官方文件中的Class與Style繫結。 index.html <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:

【Vue.js學習筆記】3資料,事件

資料繫結 使用Vue時在Vue物件的el欄位中要指定一下根容器,這裡用id選擇器。這個例子同時學習了data和methods的基本用法。 資料繫結(data-binding)可以將Vue物件中的data的值繫結到HTML標籤中的某些位置,則修改時只需要修改物件中相應data的值即

Android總結篇系列Android Service

1 public class CActivity extends Activity { 2 3 public static final String TAG = "CActivity"; 4 5 private Button bindServiceBtn;

Android 開發神器系列(工具篇)之 Android WiFi ADB

               做為一個多年奮戰在Android 應用開發一線的程式設計師來說,程式除錯的苦是不言而喻的,在過去的很長一段時間裡,我們如果要除錯Android 應用只能通過USB資料線,一頭連著手機,一頭聯著電腦,不敢讓手機離開電腦半步。 、         

Android 開發筆記 1Ubuntu 14.04 中安裝eclipse開發環境

本文詳細說明了在Ubuntu 14.04中安裝用於Android開發的Eclipse開發環境的詳細步驟。 1、在eclipse、oracle官網分別下載eclipse和jdk(這裡使用64位計算機)