`
zhouxin464585932
  • 浏览: 80451 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

android 中Spinner与dialog的综合应用

阅读更多

package training.droplistaddremove.com;

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

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class droplistaddremove extends Activity {
private static final String[] strarray = { "北京市", "上海市", "天津市", "重庆市" };
private ArrayAdapter<String> adapter;
private Button butn_add;
private Button butn_remove;
private TextView textview1;
private EditText edittext1;
private Spinner myspinner;
private List<String> allCountries;
private String addstr;
private final int dialog_isexit = 0;
private final int dialog_insert = 1;
private final int dialog_isnull = 2;
private final int dialog_isdelete=3;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
allCountries = new ArrayList<String>();
// 初始化数组
for (int i = 0; i < strarray.length; i++) {
allCountries.add(strarray[i]);
}
// 设置属性
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, allCountries);
adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 通过控件编号去得到各控件
myspinner = (Spinner) findViewById(R.id.mySpinner);
butn_add = (Button) findViewById(R.id.myButton_add);
butn_remove = (Button) findViewById(R.id.myButton_remove);
textview1 = (TextView) findViewById(R.id.myTextView);
edittext1 = (EditText) findViewById(R.id.myEditText);
// 为下拉列表赋值
myspinner.setAdapter(adapter);
// 添加按钮事件
butn_add.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
addstr = edittext1.getText().toString();
// 在当前的数组是否有这输入的值
for (int i = 0; i < strarray.length; i++) {
if (addstr.equals(adapter.getItem(i))) {
textview1.setText(addstr + "已经存在不能在添加");
// new
// AlertDialog.Builder(droplistaddremove.this).setTitle("添加值重复")
// .setMessage("您添加的"+addstr+"已经存在不能在添加")
// .setPositiveButton("确定", null).show();
showDialog(dialog_isexit);
return;
}
}
if (addstr.equals("")) {
// new
// AlertDialog.Builder(droplistaddremove.this).setTitle("添加值不能为空")
// .setMessage("您添加的值不能为空")
// .setPositiveButton("确定", null).show();
showDialog(dialog_isnull);
return;
}
// 当前输入的值是否为空为空的话则不能加入相反加入
if (!addstr.equals("")) {
showDialog(dialog_insert);

}

}

});
// 删除按钮事件
butn_remove.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (myspinner.getSelectedItem() != null) {
//String Strselect = myspinner.getSelectedItem().toString();
//allCountries.remove(Strselect);
//textview1.setText("");
//edittext1.setText("");
showDialog(dialog_isdelete);
}

}
});
/* 将mySpinner添加OnItemSelectedListener */
myspinner
.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
/* 将所选mySpinner的值带入myTextView中 */
textview1.setText(arg0.getSelectedItem().toString());
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});

}

protected Dialog onCreateDialog(int id) {
switch (id) {
case dialog_isexit:
return builddialog(this, dialog_isexit);

case dialog_insert:
return builddialog(this, dialog_insert);
case dialog_isnull:
return builddialog(this, dialog_isnull);
case dialog_isdelete:
return builddialog(this,dialog_isdelete);
}
return super.onCreateDialog(id);

}

private Dialog builddialog(Context context, int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
switch (id) {
case dialog_isexit:
builder.setTitle("添加重复值");
builder.setMessage("您添加的" + addstr + "已经重复不能在加");
builder.setPositiveButton("确定", new Dialog.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// finish();
return;
}
});
break;
case dialog_insert:
builder.setTitle("添加");
builder.setMessage("您确定要添加吗?");
builder.setPositiveButton("确定", new Dialog.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// finish();
allCountries.add(addstr);
int position = adapter.getPosition(addstr);
/* 将Spinner选择在添加的值的位置 */
myspinner.setSelection(position);
textview1.setText(addstr);
edittext1.setText("");
}
}).setNegativeButton("取消", null);
break;
case dialog_isnull:
builder.setTitle("添加值为空");
builder.setMessage("添加值不能为空");
builder.setPositiveButton("确定", null);
break;
case dialog_isdelete:
builder.setTitle("删除");
builder.setMessage("您真的要删除吗?");
builder.setPositiveButton("确定", new Dialog.OnClickListener(){

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String Strselect = myspinner.getSelectedItem().toString();
allCountries.remove(Strselect);
textview1.setText(Strselect+"删除成功");
edittext1.setText("");
}}).setNegativeButton("取消", null);
break;
}
return builder.create();
}
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
menu.add(0,0,0,"添加").setIcon(android.R.id.input);
menu.add(0,1,0,"删除").setIcon(android.R.drawable.btn_star_big_off);
return true;
}
public boolean onMenuItemSelected(int featureId, MenuItem item )
{
switch (featureId)
{
case 0:
showDialog(dialog_insert);
break;
case 1:
showDialog(dialog_isdelete);
break;
}
return super.onMenuItemSelected(featureId, item);

}
}

分享到:
评论

相关推荐

    Dialog形式三级联动城市Spinner选择器

    总的来说,"Dialog形式三级联动城市Spinner选择器"是一个涉及Android UI设计、数据管理、事件监听和自定义Adapter等多个知识点的综合实践。掌握这个功能的实现,对提升Android开发能力大有裨益。

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    android开发揭秘PDF

    第13章 AndroidOpenGL综合 应用 13.1 移动图像 13.2.3D 世界 13.3 飘动的旗帜 13.4 显示列表 13.5 雾 13.6 粒子系统 13.7 蒙版 13.8 变形 13.9 小结 第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 ...

    《Android应用开发揭秘》源码

     第13章 AndroidOpenGL综合应用  13.1 移动图像  13.2.3D 世界  13.3 飘动的旗帜  13.4 显示列表  13.5 雾  13.6 粒子系统  13.7 蒙版  13.8 变形  13.9 小结  第14章 游戏引擎实现  14.1 游戏引擎介绍 ...

    Google.Android开发入门与实战

    7.3.7 下拉列表(Spinner)介绍与应用 7.3.8 自动完成文本(AutoCompleteTextView) 7.3.9 日期选择器(DatePicker)介绍与应用 7.3.10 时间选择器(TimePicker)介绍与应用 7.3.11 滚动视图(ScrollView)介绍与应用 7.3.12 ...

    Android应用开发揭秘pdf高清版

    最重要的是还全面介绍了如何利用原生的C,C++(NDK)和Python、Lua等脚本语言(AndroidScriptingEnvironment)来开发Android应用,《Android应用开发揭秘》实战性强,书中的每个知识点都有配精心设计的示例,尤为...

    Google Android开发入门与实战的代码

    7.3.7 下拉列表(Spinner )介绍与应用 85 7.3.8 自动完成文本(AutoCompleteTextView ) 87 7.3.9 日期选择器(DatePicker)介绍与应用 89 7.3.10 时间选择器(TimePicker)介绍与应用 90 7.3.11 滚动视图...

    Android应用开发揭秘

    第13章 AndroidOpenGL综合应用 13.1 移动图像 13.2.3D 世界 13.3 飘动的旗帜 13.4 显示列表 13.5 雾 13.6 粒子系统 13.7 蒙版 13.8 变形 13.9 小结 第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2...

    Android 中常见控件参考手册-中文版

    Android应用开发中,控件是构建用户界面的基本元素,决定了应用的外观和功能。本文档旨在详细介绍Android中一些常见控件的使用方法,帮助开发者更好地理解和运用它们。 1. **TextView文本框**: - TextView是用于...

    Android编程指南+程序员入门(中文版).pdf

    - **综合应用实例**:通过一个完整的“找朋友”应用开发案例,整合之前章节所学的各种技术,包括网络通信、数据库操作、UI设计等。 ### 三、SDK工具参考与资源管理 - **Android SDK工具**:详述SDK提供的各种工具...

    移动应用开发教案.pdf

    在最后一讲中,学生将通过实现一个天气预报服务,综合运用之前学到的知识,包括组件通信、数据存储和服务等,以此提升他们的实际开发能力。 整个教案以理论讲解与实践操作相结合,确保学生不仅能理解移动应用开发的...

    android-material-preferences-4.0.0

    在这个项目中,"AndroidMaterialPreferences"库将Material Design的元素融入到Android的首选项(Preferences)框架中,使开发者能够快速地创建出与Google官方应用一致的设置界面。 这个开源项目的核心在于其提供的...

    Android应用源码之一个Demo搞定30个控件.zip

    这个名为"Android应用源码之一个Demo搞定30个控件.zip"的压缩包文件,显然是为了帮助开发者通过一个综合性的Demo来学习和实践这30种常见的Android UI控件。下面,我们将详细探讨这些控件及其在Android开发中的作用。...

    SpinnerViewPopDemo:SpinnerViewPop【PopWindow样式、Dialog样式的下拉菜单】

    SpinnerViewPopDemo是一个Java开发的项目,主要展示了如何创建具有PopWindow样式和Dialog样式的下拉菜单。在Android开发中,...同时,这也是对Android组件、布局设计、事件处理、数据管理等基础知识的综合运用。

    PopupWindow下拉列表.zip

    总结来说,PopupWindow下拉列表是Android应用开发中常用的功能,涉及了PopupWindow、ListView(或RecyclerView)、Adapter等组件的综合运用,通过合理的布局和事件处理,可以创建出高效、美观的用户交互界面。...

    yjboAndroidModule:各个知识的总结归纳,持续更新

    【yjboAndroidModule:Android知识的综合梳理与持续更新】 `yjboAndroidModule` 是一个专注于Android开发的知识库,作者yjbo自2016年7月以来一直在不断更新和完善,旨在为开发者提供全面的Android编程指南。这个模块...

Global site tag (gtag.js) - Google Analytics