从对话框更新活动的列表视图

时间:2013-06-10 08:44:45

标签: android listview android-activity alertdialog

我有一个用于输入主数据(订单数据)的活动,在按照用户单击按钮的顺序保存输入项目的订单后,会弹出一个Alertdialog,用户输入项目以及与该项目相关的其他详细信息并按保存。用户继续此过程,直到输入所有项目。我希望在每个保存按钮之后按下父活动的列表视图以刷新,并且当用户通过警告对话框添加项目时,订单中添加的项目将一个接一个地显示在列表中。请告诉我该怎么做。提前谢谢。
EDITED
我是一个傻瓜(在提出问题之前我应该​​想到这一点) - 因为Activity正在调用Alertdialog ......所有变量都可用于对话框。因此,从对话框中,我可以检索该订单的所有项目,并填充活动上可用的列表视图。 感谢您的所有建议。

3 个答案:

答案 0 :(得分:1)

也许......

  • 将更新数据代码放入活动的onResume()
  • 或者,向您的活动发送广播事件

答案 1 :(得分:1)

在官方文档中查看如何将数据发送回您的活动:

http://developer.android.com/guide/topics/ui/dialogs.html#PassingEvents

您必须实现一个侦听器接口。在回调方法中,您可以更新列表视图。

答案 2 :(得分:0)

您可以创建一个更新listdataitem的函数,并在从sdcard删除文件后立即调用此函数。它会引用你的listItem。您可以第一次调用相同的函数来设置数据列表。

ActivityClass.java

ListView listview;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listview = (ListView) findViewById(android.R.id.list); 
    refreshData();
listview .setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
                new AlertDialog.Builder(ActivityName.this)
                //.setIcon(R.drawable.folder)
                //.setTitle("title")
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                    public void onClick(DialogInterface dialog, int which) {
                        saveData();
                        refreshData();

                    }
                }).show();


            }
        });

    }
    void saveData(){
        //write code here fo save data
    }

    public void refreshData(){


        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
         listview.setAdapter(adapter);

    }