更新Android视图中的列表

时间:2012-06-22 02:46:53

标签: android listview

所以我有一个带按钮的UI,点击时会显示弹出的用户输入。输入的任何内容都应添加到arraylist并显示在屏幕上的列表中。以下是我的代码。我已经尝试使用notifyDataSetChanged()更新视图但没有结果。

public class reminderList extends ListActivity
{
ArrayList values = new ArrayList(20);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    values.add(0,"Test");
    values.add(0,"test2");

    //final ListView listView = (ListView) findViewById(R.id.list);
    setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, values));

    final Button addButton = (Button) findViewById(R.id.addTask);

    addButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
            alertPop();

        }
    });
}

private void alertPop() {
    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Enter new task");
    alert.setMessage("Input");

    // Set an EditText view to get user input
    final EditText input = new EditText(this);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            Editable uin = input.getText();
            // Do something with value!
            values.add(0,uin);

            //((ArrayAdapter<Object>) list.getAdapter()).notifyDataSetChanged();
        }
    });

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

    alert.show();
  }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

试试这个,

在设置适配器....

之后放置notifyDataSetChanged()

例如:

ArrayAdapter<String> adpt = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values)

setListAdapter(adpt);

notifyDataSetChanged(adpt);