小编Bog*_*che的帖子

从侦听器回调方法调用Android的BaseAdapter notifyDataSetChanged()

我一直在努力解决这个问题.在我的项目中,有几个活动包括ListView和扩展BaseAdapter的自定义适配器.它们还实现了一些通常通知它数据已被更改的接口.

但是,当我从我的类中实现的侦听器/接口方法调用notifyDataSetChanged()时,ListView不会更新,也不会调用任何适配器方法(getCount(),getView()).

我知道这与调用notifyDataSetChanged()的事实有关,我的意思是哪个线程,但我不太明白它,也找不到这种行为的简单解释.

作为这个问题的解决方法,我使用Handler定期调用一个方法,在该方法中我查看布尔值'needsToBeUpdated'值是否为真,然后我调用notifyDataSetChanged()方法.但这很丑陋,而且我确信需要有一种异步方式.

任何帮助,将不胜感激.

我正在谈论的伪代码:

public class FriendsActivity extends Activity implements FriendsListener {
private ListView mListView;
private ArrayList<Friends> mFriendsList;
private FriendsAdapter mFriendsAdapter;
private boolean mNeedsToBeUpdated;
private Handler mListUpdateHandler;
private Runnable mListUpdateTask;

onCreate() {
    initViews();
    mFriendsAdapter = new FriendsAdapter(mFriendsList);
    mListView.setAdapter(mFriendsAdapter);
    SomeStaticClass.addFriendListener(this)

    mNeedsToBeUpdated = false;

    mListUpdateHandler = new Handler();
    mListUpdateHandler.removeCallbacks(mListUpdateTask);
    mListUpdateHandler.postDelayed(mListUpdateTask, 10000);

}

onListenerMethod() {
    updateFriendsList();
    mFriendsAdapter.updateDataSource(mFriendsList);
    mFriendsAdapter.notifyDataSetChanged(); // THIS DOESN'T UPDATE THE VIEWS
    mNeedsToBeUpdated = true;
}

protected void onResume() {
    mListUpdateTask = new Runnable() {
        public void run() { …
Run Code Online (Sandbox Code Playgroud)

android listview baseadapter

5
推荐指数
1
解决办法
4141
查看次数

Advanced Installer的可靠性如何?

我正在尝试使用Advanced Installer作为应用程序安装程序和自动更新程序.大多数资源仅在Advanced Installer网站上提供.

以前有人用过吗?我想听听有关错误/稳定性问题的更多信息,尤其是自动更新功能

installer windows-installer auto-update advanced-installer

5
推荐指数
1
解决办法
1605
查看次数

默认程序打开文件并在C#中加载应用程序

我有一个C#WinForm应用程序.此程序旨在创建和打开特定文件(.cus).使用此程序创建文件,可以在同一程序中打开.

我正在使用Advanced Installer来创建安装程序.

安装后,我需要我的程序在双击时打开文件(.cus).(就像,如果我们dblClick .xls文件它加载并打开MS Excel,如果它在系统中.)

我怎样才能做到这一点?

我详细解答会很好理解.如果我需要更清楚,请告诉我.

谢谢你的期待.

c# winforms advanced-installer

4
推荐指数
1
解决办法
1124
查看次数

通过Advanced Installer静默安装Apache

我试图使用Advanced Installer 8.9 静默安装apache ,但即使我在Silent(无UI)字段中传递命令参数,它仍然提示我进行用户交互.

msiexec/i"httpd-2.2.22-win32-x86-no_ssl.msi"/ qn/passive ALLUSERS = 1 SERVERADMIN = admin @ localhost SERVERNAME = localhost SERVERDOMAIN = localhost SERVERPORT = 80

我该怎么做才能解决这个问题?

apache advanced-installer silent-installer

3
推荐指数
1
解决办法
1933
查看次数

安装向导中的数据库连接

我正在部署使用WPF构建的应用程序.它嵌入了一个Sql CE数据库.现在我需要在安装向导中包含一个窗口,用户需要在其中输入一些信息,并且必须在本地数据库中使用该应用程序进行更新.我使用高级安装程序进行部署.这里的任何人都可以帮我解决这个问题吗...

c# deployment wpf installation

3
推荐指数
1
解决办法
99
查看次数

防止卸载c ++可再发行组件

我在我的产品中使用Advanced Installer.作为安装的一部分,安装程序会安装我的产品运行所需的c ++可再发行组件.我的问题是如何防止用户在添加/删除程序中删除c ++可再发行组件安装?是否可以选择在安装程序安装的第三方产品上使用引用计数?

installer windows-installer

3
推荐指数
1
解决办法
145
查看次数

为什么一个函数调用缺少它的名字仍然编译?

开发人员正在复制并粘贴相似类型的代码,并在其中而不是代码中犯了错误

int x = 100;
int y = 100;
int z = 100;
aFunction(x, y, z);
Run Code Online (Sandbox Code Playgroud)

他们不小心打字了

int x = 100;
int y = 100;
int z = 100;     
(x, y, z);  //What does this Line of Code do?
Run Code Online (Sandbox Code Playgroud)

此代码已成功编译,并未发出警告.尝试在VS 2015中调试此代码时,调试器将跳过此行代码.

为什么这行代码编译并且没有发出警告,这行编码是做什么的?

更新: 在Visual Studio 2015中构建所有警告显示此警告,但级别4不显示.奇怪的是,Code Analysis和Clang Power Tools都没有显示此警告.

谢谢.

c++ clangpowertools

-2
推荐指数
1
解决办法
115
查看次数