Android:如何将项目添加到列表视图中单击按钮?

时间:2012-04-24 07:33:26

标签: android android-listview adapter listadapter

我的布局文件中有一个列表视图和一个按钮。我想在点击该按钮时将项目添加到listview。活动开始时列表视图应为空,但应通过向其添加项目来增加。单击“AddItem”按钮,我将显示一个AlertDialog以从用户获取项目/输入。如何将该项添加到listview?请帮我代码。我应该使用哪个适配器在ListView中使用我自己的布局?我应该扩展ListActivity吗?

这是我的布局文件:my_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue"
android:orientation="vertical" >

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:divider="@android:color/black"
    android:dividerHeight="2dp" >
</ListView>

<Button
        android:id="@+id/addItemButtom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_weight="1"
        android:text="Add Item" />


</LinearLayout>

这是我的row_item.xml

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@android:color/white"
 android:orientation="vertical" >

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:gravity="center"
    android:orientation="horizontal" >

    <TextView  android:layout_weight = "1" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Newly Added Item : "
        android:textColor="@android:color/black"
        android:textSize="17dp" />

    <TextView android:layout_weight = "1" 
        android:id="@+id/itemTextView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

</LinearLayout>

这是我的java文件:

public class MyList extends Activity implements OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.my_list);

    findViewById(R.id.addItemButtom).setOnClickListener(this);  

}



@Override
public void onClick(View v) 
{
    switch (v.getId()) {
    case R.id.enterInverter:

        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        final EditText et = new EditText(this);      
        et.setHint("Enter Item");
        et.setMaxLines(1);    
        et.setTextSize(17); 
        alert.setTitle("Enter Item");
        alert.setView(et); 
        alert.setInverseBackgroundForced(true);

        alert.setPositiveButton("Add", new DialogInterface.OnClickListener() 
        { 
            public void onClick(DialogInterface dialog, int whichButton) 
            {
                String item = et.getText().toString().trim();


            }
        });

        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int whichButton) 
            {
                dialog.cancel();
            }
        });
        alert.show();



        break;

    default:
        break;
    }
}
}

2 个答案:

答案 0 :(得分:4)

ArrayAdapter可能就是要开始的。当然它会根据你的列表改变,但我建议你使用ArrayAdapter。获取列表的引用,为其定义新的适配器并使用setAdapter方法进行设置。然后,您可以在适配器中添加/删除项目。

答案 1 :(得分:3)

你的列表视图在哪里?

在列表中添加列表项(数组或Arraylist或......)

 your_adapter.notifyDataSetChanged();

它可以绘制你的新列表视图