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 adapter;
 private Button butn_add;
 private Button butn_remove;
 private TextView textview1;
 private EditText edittext1;
 private Spinner myspinner;
 private List 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();
  // 初始化数组
  for (int i = 0; i < strarray.length; i++) {
   allCountries.add(strarray[i]);
  }
  // 设置属性
  adapter = new ArrayAdapter(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);
     
    }
}

 

更多相关文章

  1. Android(安卓)为图片添加文字水印
  2. ADB 实现Android(安卓)Http 代理
  3. android读写Sdcard
  4. android 退出整个APP
  5. android Handler使用
  6. android ListView 动态加载
  7. android create and remove shortcut
  8. update android api
  9. 【Android】自定义 Tabhost

随机推荐

  1. Android studio 卡的问题
  2. Android(安卓)使用Settings 数据库demo(源
  3. 剖析Android自带Widget-Music播放器
  4. Android学习-RelativeLayout相对布局属性
  5. android SD卡文件监听
  6. Android JNI 实例
  7. Android(安卓)M 新的运行时权限开发者需
  8. Android 进入界面禁止EditText弹出系统键
  9. Android的StrictMode
  10. Spring for Android 1.0.0发布