安卓開(kāi)發(fā)中動(dòng)態(tài)添加lsitView 代碼實(shí)例

字號(hào):


    這個(gè)很簡(jiǎn)單 就是為了說(shuō)明別忘了adapter.notifyDataSetChanged();
    喚醒一下,其實(shí)這個(gè)喚醒也就是在button下用 或者在別的控件下調(diào)用 如果是在getView下就不必了
    java代碼:
    public class DynamicListItems extends ListActivity {
    private static final String ITEM_KEY = "key";
    ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
    private SimpleAdapter adapter;
    private EditText newValue;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dynamic_list);
    newValue = (EditText) findViewById(R.id.new_value_field);
    setListAdapter(new SimpleAdapter(this, list, R.layout.row, new String[] { ITEM_KEY }, new int[] { R.id.list_value }));
    ((ImageButton) findViewById(R.id.button)).setOnClickListener(getBtnClickListener());
    }
    private OnClickListener getBtnClickListener() {
    return new OnClickListener() {
    public void onClick(View view) {
    try {
    HashMap<String, String> item = new HashMap<String, String>();
    item.put(ITEM_KEY, newValue.getText().toString());
    list.add(item);
    adapter.notifyDataSetChanged();
    } catch (NullPointerException e) {
    Log.i("[Dynamic Items]", "Tried to add null value");
    }
    }
    };
    }
    }
    Java代碼:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ListView android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"
    android:cacheColorHint="#00000000">
    </ListView>
    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="6px"
    android:layout_marginBottom="8px"
    android:layout_marginLeft="8px"
    android:layout_marginRight="8px"
    android:background="#00000000">
    <ImageButton
    android:id="@+id/button"
    android:layout_width="100px"
    android:layout_height="100px"
    android:src="@android:drawable/ic_menu_add" />
    </LinearLayout>
    <LinearLayout
    android:orientation="vertical"
    android:layout_width="230px"
    android:layout_height="wrap_content"
    android:layout_marginTop="8px"
    android:layout_marginBottom="8px"
    android:layout_marginLeft="0px"
    android:layout_marginRight="28px"
    android:background="#cccccc00" >
    <EditText android:id="@+id/new_value_field"
    android:textColor="#020905"
    android:textSize="18sp"
    android:layout_marginTop="6px"
    android:layout_marginBottom="8px"
    android:layout_marginLeft="12px"
    android:layout_marginRight="12px"
    android:layout_width="210px"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
    </LinearLayout>
    </LinearLayout>
    ROw:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#00000000">
    <TextView
    android:id="@+id/list_value"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
    </LinearLayout>