首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-12-19 
转:动态添加/删除spinner菜单--ArrlayList与Widget依赖性package irdc.ex04_09import android.app.Activi

转:动态添加/删除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)
????? {

????? }
??? });

? }
}

热点排行