`
baobaoupup
  • 浏览: 471958 次
文章分类
社区版块
存档分类
最新评论

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);

}
}

分享到:
评论

相关推荐

    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开发入门与实战(上)

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

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

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

    《Google Android开发入门与实战》.pdf

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

    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简明应用程序开发[原创]

    本书预计10章,最后包含一个形如《汽车之家》的综合案例,现在发布前5章,后5章还没写完,写完后会马上发出,敬请期待。 前五章目录: 章节目录 2 作者的话 4 第一章 Android开发环境介绍 6 一、下载与安装 6...

Global site tag (gtag.js) - Google Analytics