android 中Spinner与dialog的综合应用

来源:互联网 发布:淘宝造物节图片 编辑:程序博客网 时间:2024/05/16 00:50

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

 

原创粉丝点击