我的布局文件中有一个列表视图和一个按钮。我想在点击该按钮时将项目添加到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;
}
}
}
答案 0 :(得分:4)
ArrayAdapter可能就是要开始的。当然它会根据你的列表改变,但我建议你使用ArrayAdapter。获取列表的引用,为其定义新的适配器并使用setAdapter方法进行设置。然后,您可以在适配器中添加/删除项目。
答案 1 :(得分:3)
你的列表视图在哪里?
在列表中添加列表项(数组或Arraylist或......)
your_adapter.notifyDataSetChanged();
它可以绘制你的新列表视图