1

我的布局文件中有一个列表视图和一个按钮。我想在单击该按钮时将项目添加到列表视图。活动开始时列表视图应该是空的,但它应该通过向其中添加项目来增长。单击“AddItem”按钮时,我将显示一个 AlertDialog 以从用户那里获取项目/输入。如何将该项目添加到列表视图?请帮我写代码。我应该使用哪个适配器在 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;
    }
}
}
4

2 回答 2

4

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

于 2012-04-24T07:44:28.380 回答
3

你的列表视图在哪里?

当您在列表中添加列表项时(Array 或 Arraylist 或...)

 your_adapter.notifyDataSetChanged();

它让你画出新鲜的列表视图

于 2012-04-24T07:42:18.110 回答