小编Cod*_*ile的帖子

从另一个应用程序复制Android数据库?

我有两个版本的同一个应用程序.

当人们从免费版本升级到付费版本时,我希望将免费数据库复制到专业版数据库位置.

如果它属于另一个应用程序,有没有办法可以访问数据库文件?
该文件甚至属于应用程序还是通常可以通过文件系统访问?

最后,如何在不对其进行硬编码的情况下获取数据库文件的路径?

database sqlite android

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

从set中选择值以匹配目标值的算法?

我有一个固定的常数整数值数组,大约300项(Set A).该算法的目标是从该数组中选择两个数字(X和Y),这些数字符合基于输入R的若干标准.

正式要求:
选值Xÿ从设置使得表达式X*Y /(X + Y)是尽可能接近到ř.

这里的所有都是它的.我需要一个简单的算法来做到这一点.

附加信息:
Set A可以任何方式订购或存储,最终将进行硬编码.此外,通过一些数学运算,可以证明给定X的最佳Y是集合A中最接近表达式X*R /(XR)的值.此外,XY总是大于R.

从这里,我得到一个简单的迭代算法,可以正常工作:

int minX = 100000000;
int minY = 100000000;
foreach X in A
    if(X<=R)
        continue;
    else
        Y=X*R/(X-R)
        Y=FindNearestIn(A, Y);//do search to find closest useable Y value in A
        if( X*Y/(X+Y) < minX*minY/(minX+minY) )
        then
            minX = X;
            minY = Y;
        end
    end
end …
Run Code Online (Sandbox Code Playgroud)

algorithm performance search

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

如何在SQLite中将现有行与新数据合并?

我有一个包含简单注释数据的数据库,包含标题,截止日期,优先级和详细信息的列.还有一个_id列PRIMARY KEY int.

假设我在表格中有一个注释已填充一些数据,其余为空.我还有一组数据将填充所有这些字段.

有没有办法只能将数据写入NULL字段?

我无法覆盖现有数据,但我想将数据添加到NULL列.

我知道目标行的rowId.

如果我的目标行的rowId为5,我可以这样做:

UPDATE SET duedate='some date', priority='2', details='some text' WHERE _id=5
Run Code Online (Sandbox Code Playgroud)

但这会覆盖该行中的所有数据,我不想丢失可能存在的任何数据.如何更改此语句以避免写入非空字段?

sql database sqlite

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

如何在简单的网站上浏览更新?

我有一位教授随机更新他的网站,明天就要完成作业,似乎希望我们每小时检查一次.

这听起来像是一个程序的工作.

他的网站很简单,完全是HTML,甚至没有任何javascript.我怎么能以编程方式检测到他网站的任何更改/更新?

html polling

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

如何发送由ON_NOTIFY处理的通知?

我正在尝试将LVN_ ITEMCHANGED发布到我的自定义gridlist的所有者.我知道如何使用PostMessage发送WM_用户消息(如此处所示)

::PostMessage( AfxGetMainWnd()->GetSafeHwnd(), WM_REFRESH, (WPARAM)pBuffer, (LPARAM)GetOutputIdx() );
Run Code Online (Sandbox Code Playgroud)

当我使用相同的代码发送LVN_ITEMCHANGED消息时,

::PostMessage( AfxGetMainWnd()->GetSafeHwnd(), LVN_ITEMCHANGED, 0, 0);
Run Code Online (Sandbox Code Playgroud)

它似乎没有被抓住

ON_NOTIFY(LVN_ITEMCHANGED, ..., ...) 
Run Code Online (Sandbox Code Playgroud)

我在业主班.

使用:: PostMessage发送Notify事件我错了吗?
Notify消息和WM_前缀消息之间是否有区别或者它们是如何处理的?
有人可以发布一个如何正确发送消息的样本吗?

提前致谢.

编辑
我找到了问题的另一种解决方案.请参阅下面的答案.

c++ mfc messages

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

如何检查Destructor中是否已释放内存?

我有一个简单的坦克大战风格游戏使用allegro开源库.在我的tank类中,我将位图对象的指针数组初始化为0.然后我使用allegro函数create_bitmap创建新对象,该函数分配内存并初始化它.

然后我像往常一样开展业务.

问题是,当我在类析构函数中释放位图内存就像一个好的OO男孩时,我崩溃了程序,因为在这个特定的程序中,allegro库在类之前进行清理(释放它创建的位图对象)超出范围并被销毁.它不会再次将我的指针设置为NULL,所以我无法检查位图是否仍然有效,如果我尝试释放它们,它们将使程序崩溃.

有没有办法解决?如果它们不是NULL,我可以检查有效指针吗?如果在程序中以不同的方式使用类,我怎么能确定释放内存.就目前而言,我基本上是在没有删除的情况下调用new而我不喜欢它.

c++ destructor memory-leaks allegro

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

如何在选择COUNT()函数时连接SQL表?

我有两个数据库表,'列表'和'注释'.
列表包含列_id,listname
Notes具有列_id,checked,list_id(它是Lists._id的外键),以及更多与此问题无关的列.

我想创建一个返回四列的查询:
Lists._id,Lists.listname,此列表中所有已检查Notes的计数,此列表中所有Notes的计数.

查询应返回列表中的所有条目.

我可以使用以下查询单独获取计数和_ids和列表名称

SELECT _id, listname FROM Lists
SELECT count(checked) FROM Notes WHERE checked='1' and list_id=foo_id
SELECT count(*) FROM Notes WHERE list_id=foo_id
Run Code Online (Sandbox Code Playgroud)

在这些语句中,foo_id指的是我想要计算的列表的_id和总项目.

有人可以告诉我如何将这些全部放入一个查询中吗?

为计数列投放AS的加分点.

sql sqlite join

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

我可以在SQLite事务中查询吗?

我在Android库中使用SQLite3数据库系统.

我需要在事务期间执行查询以查看是否已存在类似的条目.如果有,我必须在添加新行之前执行一些其他逻辑和调整.

我可以在事务中执行查询并立即返回结果吗?

sqlite android

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

如何在Java/Android中将100除以110等于小数

我正在尝试使用跟随代码来生成十进制数,但是l除以h(低到高)的评估总是为0.

我怎么能纠正这个?谢谢!

EditText marketValLow = (EditText) findViewById(R.id.marketValLow);
            EditText marketValHigh = (EditText) findViewById(R.id.marketValHigh);
            String valLow = marketValLow.getText().toString();
            String valHigh = marketValHigh.getText().toString();
            int l = Integer.parseInt(valLow);
            int h = Integer.parseInt(valHigh);

            if (valLow.trim().equals("") || valHigh.trim().equals("")) {

                Toast.makeText(CurrentMarketValue.this, "You need to enter a high AND low." + valLowIndex, Toast.LENGTH_SHORT).show();

            } else if ((l / h) < .9) { 

                Toast.makeText(CurrentMarketValue.this, "The range between your value cannot be more than 10%." + (l / h), Toast.LENGTH_SHORT).show();

            }
Run Code Online (Sandbox Code Playgroud)

java math

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

如何实现SAX处理程序的character()函数以最小化内存使用?

我在我的Android应用程序中实现了一个java SAX解析器.

我已经完成了所有工作,但我正在尝试优化一个小块,它可以吸收更多需要的内存.

这是我目前(我知道效率很低)DefaultHandler的character()函数的实现.

String currentText = "";

    @Override
public void characters(char[] ch, int start, int length)
{
    if(currentText.length() > 0)
    {
        currentText = currentText.concat(new String(ch, start, length));
    }else
    {
        //Takes half as much memory as concating to empty string
        currentText = new String(ch, start, length);
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,当SAX遇到元素内的文本时,会调用此函数.重要的是要注意,整个文本不能保证一次解析,因此必须将新字符附加到当前currentText中的任何文本(请注意,currentText在每个元素的末尾设置为"").

我只是把这些代码放在一起使它工作,所以我可以测试我的解析器的其余部分,但这需要进行优化.

关于如何实现这个以尽可能少使用内存的任何建议?

java string optimization android sax

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