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方法的时候会报错。
5502

被折叠的 条评论
为什么被折叠?



