您的位置:首页 > 移动开发 > Android开发

android 中Spinner与dialog的综合应用

2010-03-24 14:48 351 查看
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);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐