`
zkh43javaeye
  • 浏览: 84495 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

转:动态添加/删除spinner菜单--ArrlayList与Widget依赖性

阅读更多

package irdc.ex04_09;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

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

public class EX04_09 extends Activity
{
  private static final String[] countriesStr =
  { "成都", "北京", "上海", "香港" };
  private TextView myTextView;
  private EditText myEditText;
  private Button myButton_add;
  private Button myButton_remove;
  private Spinner mySpinner;
  private ArrayAdapter<String> adapter;
  private List<String> allCountries;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 载入main.xml Layout */
    setContentView(R.layout.main);

    allCountries = new ArrayList<String>();
    for (int i = 0; i < countriesStr.length; i++)
    {
      allCountries.add(countriesStr[i]);
    }

    /* new ArrayAdapter传入allCountries */
    adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, allCountries);
    adapter
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    /* findViewById()取得对象 */
    myTextView = (TextView) findViewById(R.id.myTextView);
    myEditText = (EditText) findViewById(R.id.myEditText);
    myButton_add = (Button) findViewById(R.id.myButton_add);
    myButton_remove = (Button) findViewById(R.id.myButton_remove);
    mySpinner = (Spinner) findViewById(R.id.mySpinner);

    /* 将ArrayAdapter添加到Spinner对象中 */
    mySpinner.setAdapter(adapter);

    /* 给myButton_add添加OnClickListener */
    myButton_add.setOnClickListener(new Button.OnClickListener()
    {

      @Override
      public void onClick(View arg0)
      {
        String newCountry = myEditText.getText().toString();

        /* 比较值是否已经存在,不存在再添加   */
        for (int i = 0; i < adapter.getCount(); i++)
        {
          if (newCountry.equals(adapter.getItem(i)))
          {
            return;
          }
        }

        if (!newCountry.equals(""))
        {
          /* 重要的方:将值添加进adapters*/
          adapter.add(newCountry);

          /* 取得添加值的位子 */
          int position = adapter.getPosition(newCountry);
          /* 将spinner指定在添加的位子 */
          mySpinner.setSelection(position);

          /* 将myEditText清空  */
          myEditText.setText("");
        }

      }
    });

    /* 将myButton_remove添加OnClickListener */
    myButton_remove.setOnClickListener(new Button.OnClickListener()
    {

      @Override
      public void onClick(View arg0)
      {

        if (mySpinner.getSelectedItem() != null)
        {
          /* 删除mySpinner现在指定的数值 */
          adapter.remove(mySpinner.getSelectedItem().toString());

          /* 将myEditText清空 */
          myEditText.setText("");
          if (adapter.getCount() == 0)
          {
            /* 将myTextView清空 */
            myTextView.setText("");
          }
        }
      }
    });

    /* 将mySpinner添加OnItemSelectedListener */
    mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
    {

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

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

      }
    });

  }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics