活动没有改变

时间:2014-05-13 17:52:47

标签: android android-activity xamarin.android xamarin progressdialog

你可以帮我解决以下问题吗? 我有一些代码:

button.Click += (sender, e) => Search_Click();

....

void Search_Click() 
{   
    // here i'am trying to clear some ListView
    var list = FindViewById<ListView> (Resource.Id.terminalsList);  
    list.Adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, new List<string>());

    // here i am trying to show ProgressDialog
    ProgressDialog progress = new ProgressDialog(this);         
    progress.SetMessage("Wait while loading...");
    progress.Show();

   // but here i haven't ProgressDialog and clear ListView yet

   ......

    // another code
}

但是这段代码不能正常工作。在Search_Click方法完成后,此代码已执行,但我希望此代码立即执行。我该怎么做?

提前致谢

3 个答案:

答案 0 :(得分:0)

每当更改适配器(或其数据)时,都需要通知ListView。检查此帖change ImageView Resource in a ListView Layout from an AsyncTask that load contactsList

的答案 祝你好运

答案 1 :(得分:0)

您需要重新加载列表视图才能在Listview中查看受影响的更改。

列表视图适用于myAdapter.notifyDataSetChanged()方法,用于重新加载和刷新

在这里,您可以使用mAdapterobj.notifyDataSetChanged()在adpater中创建任何方法,以便Listview知道数据现在正在发生变化 您也可以在setadpater()方法之后使用此方法,

对于你的进度对话框,你可以在搜索点击之外分配obj和所有必需的东西,只需使用Show()和Hide方法在进度对话框中工作

希望它可以帮到你

答案 2 :(得分:0)

等待对话框表明这是一个长时间运行的过程。你试过异步等待吗?

        button.Click += async delegate
        {
            await Search_Click();
        };
    }

    Task Search_Click() 
    {   
        return Task.Factory.StartNew (() =>
        {
            // here i'am trying to clear some ListView

            // here i am trying to show ProgressDialog
            var progress = new ProgressDialog (this);         
            progress.SetMessage ("Wait while loading...");
            progress.Show ();

            // but here i haven't ProgressDialog and clear ListView yet

            progress.Dismiss();
        });
    }