動態添加和刪除Spinner(ArrayList與Widget的依賴性)

4.9、動態添加和刪除Spinner(ArrayList與Widget的依賴性)

新建一個繼承Activity類的SpinnerItemAddOrDeleteActivity,並設置佈局文件爲:spinneritemaddordelete.xml。

在佈局文件中添加一個TextView和一個EditText,2個Button按鈕。

    <TextView

        android:id="@+id/spinneritemaddordelete_tv01"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal"

        android:text="@string/show_information"

        android:textSize="20sp" />

 

    <EditText

        android:id="@+id/spinneritemaddordelete_edit01"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content" />

 

 

    <Button

        android:id="@+id/spinneritemaddordelete_btn01"

        style="@android:style/Widget.Button.Inset"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/add01" />

 

    <Button

        android:id="@+id/spinneritemaddordelete_btn02"

        style="@android:style/Widget.Button.Inset"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/delete" />

 

    <Spinner

        android:id="@+id/spinneritemaddordelete_spinner"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:entries="@array/spinnerItem"

        android:prompt="@string/spinnersetdropdownviewresource_spinner_prompt"

        android:spinnerMode="dialog" />

而後在Activity類中獲取這些組件。

 

package lyx.feng.second;

 

import java.util.ArrayList;

import java.util.List;

 

import lyx.feng.simpletextdemo.R;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.TextView;

 

public class SpinnerItemAddOrDeleteActivity extends Activity {

    private TextView tv = null;

    private EditText edit = null;

    private Button add = null;

    private Button delete = null;

    private Spinner spinner = null;

    private ArrayAdapter<String> adapter = null;

    private String item[];

    private List<String> lists = new ArrayList<String>();

 

    @SuppressWarnings("unchecked")

    @Override

    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       super.setContentView(R.layout.spinneritemaddordelete);

       this.tv = (TextView) super

              .findViewById(R.id.spinneritemaddordelete_tv01);

       this.edit = (EditText) super

              .findViewById(R.id.spinneritemaddordelete_edit01);

       this.add = (Button) super

              .findViewById(R.id.spinneritemaddordelete_btn01);

       this.delete = (Button) super

              .findViewById(R.id.spinneritemaddordelete_btn02);

       this.spinner = (Spinner) super

              .findViewById(R.id.spinneritemaddordelete_spinner);

 

       this.item = getResources().getStringArray(R.array.spinnerItem);

       for (int i = 0; i < item.length; i++) {

           lists.add(item[i]);

       }

       this.adapter = (ArrayAdapter<String>) this.spinner.getAdapter();

       this.adapter = new ArrayAdapter<String>(this,

              android.R.layout.simple_spinner_dropdown_item, this.lists);

       this.spinner.setAdapter(adapter);

      

       this.add.setOnClickListener(new OnClickListener() {

 

           @Override

           public void onClick(View v) {

              for (int i = 0; i < adapter.getCount(); i++) {

                  if (edit.getText().toString().trim()

                         .equals(adapter.getItem(i))) {

                     return;

                  }

              }

              if (edit.getText().toString().trim().equals("")) {

                  return;

              }

              tv.setText("你添加的是:" + edit.getText().toString());

              adapter.add(edit.getText().toString());

              edit.setText("");

           }

       });

       this.delete.setOnClickListener(new OnClickListener() {

 

           @Override

           public void onClick(View v) {

              if (adapter.getCount() > 0) {

                  tv.setText("你刪除的是:" + spinner.getSelectedItem().toString());

                  adapter.remove(spinner.getSelectedItem().toString());

              }

           }

       });

       this.spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

 

           @Override

           public void onItemSelected(AdapterView<?> parent, View view,

                  int position, long id) {

              tv.setText("你選擇的是:" + adapter.getItem(position).toString());

           }

 

           @Override

           public void onNothingSelected(AdapterView<?> parent) {

 

           }

       });

    }

}

 

注意這裏要使用List集合,否則在使用ArrayAdapter類的add或者removed方法的時候會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章