我正在尝试使用操作栏中的搜索栏小部件在我的Android应用程序上实现搜索.
我跟着
http://developer.android.com/guide/topics/search/search-dialog.html http://developer.android.com/guide/topics/ui/actionbar.html#ActionView
完成这项工作的教程.
我有两个涉及搜索的活动.SearchBar活动有操作栏,AcceptSearch是我可搜索的活动.即使我声明哪个活动是可搜索的活动,查询也不会被发送到AcceptSearch,并且活动未启动.
我配置了搜索栏,以便在窗口小部件为空时显示搜索栏提示,但提示也不会出现.这是我的代码.
搜索栏
public class SearchBar extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.search_bar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//Inflate the options menu from XML
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
return true;
}
Run Code Online (Sandbox Code Playgroud)
AcceptSearch
public class AcceptSearch extends ListActivity
{
@Override
protected void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) 我对计算机视觉和opencv库非常陌生.
我已经做了一些谷歌搜索试图找到如何从Point2fs的矢量创建一个新的图像,并没有找到任何有效的例子.我见过vector<Point>,Mat但是当我使用这些例子时,我总是会遇到错误.
我正在从这个例子工作,任何帮助将不胜感激.
代码:我通过了occludedSquare.
resize(occludedSquare, occludedSquare, Size(0, 0), 0.5, 0.5);
Mat occludedSquare8u;
cvtColor(occludedSquare, occludedSquare8u, CV_BGR2GRAY);
//convert to a binary image. pixel values greater than 200 turn to white. otherwize black
Mat thresh;
threshold(occludedSquare8u, thresh, 170.0, 255.0, THRESH_BINARY);
GaussianBlur(thresh, thresh, Size(7, 7), 2.0, 2.0);
//Do edge detection
Mat edges;
Canny(thresh, edges, 45.0, 160.0, 3);
//Do straight line detection
vector<Vec2f> lines;
HoughLines( edges, lines, 1.5, CV_PI/180, 50, 0, 0 );
//imshow("thresholded", edges);
cout << "Detected " …Run Code Online (Sandbox Code Playgroud) 我写了一个旋转新线程的服务器.其中一些线程需要写入标准输出,但是当它们执行时,终端中不会显示任何内容.
在sbcl中是否有某种类型的消息api允许我将消息发送回主线程?
非常感谢!
一旦我确定使用我的数据集离群无论是One-class SVM或Elliptic Envelope,我该如何使用这些模型从数据集中去除异常值?
这是我正在看的例子.
我刚刚编写了一个subst在循环内调用的程序,以及许多其他函数,到目前为止,subst函数调用花费的时间最多。下面是包含我编写的程序精神的概念性代码片段。
(loop
with bindings = ((symbol1 . 1) (sybmol2 . 2) ... (sybmoln . n))
with x-copy
for x in xs
do
...
(setq x-copy (copy-cpd x))
(setf (cpd-identifiers1 x-copy) (subst-bindings bindings (cpd-identifiers1 x)))
(setf (cpd-identifiers2 x-copy) (subst-bindings bindings (cpd-identifiers2 x)))
...)
Run Code Online (Sandbox Code Playgroud)
subst-bindings对subst内部进行递归调用:
(defun subst-bindings (bindings generic)
(cond ((null bindings) generic)
(t (subst-bindings (cdr bindings)
(subst (cdar bindings) (caar bindings) generic)))))
Run Code Online (Sandbox Code Playgroud)
我在启用了统计分析器的情况下运行了我的实际代码,我得到了以下结果:
Self Total Cumul
Nr Count % Count % Count % Calls …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 18.04 上使用 SBCL 1.4.5。
SBCL 中的垃圾收集器似乎没有正确释放绑定到带有符号键和值的哈希表的内存。有趣的是,当键和值是整数时,垃圾收集工作正常。
例如,以下程序可以正常工作:
(defun copy-hash-table (hash)
(let ((h (make-hash-table
:test (hash-table-test hash)
:rehash-size (hash-table-rehash-size hash)
:rehash-threshold (hash-table-rehash-threshold hash)
:size (hash-table-size hash))))
(loop for key being the hash-keys of hash
using (hash-value value)
do
(setf (gethash key h) value)
finally (return h))))
(defun make-integer-input ()
(loop
with hash1 = (make-hash-table) and hash2 = (make-hash-table)
for i from 0 to 500
do
(setf (gethash (random 100) hash1) (random 100))
(setf (gethash (random 100) hash2) (random 100)) …Run Code Online (Sandbox Code Playgroud) 是否可以非破坏性地将新的键值对添加到 Common Lisp (SBCL) 哈希表中?向哈希表添加新元素的标准方法是调用:
(setf (gethash key *hash-table*) value)
Run Code Online (Sandbox Code Playgroud)
但调用setf修改*hash-table*破坏了原件。我有一个应用程序,我想利用哈希表查找的效率,但我也想非破坏性地修改它们。我看到的解决方法是在对其进行操作之前复制原始哈希表,但这在我的情况下不切实际,因为我正在处理的哈希表包含数千个元素并复制大型哈希表,例如循环首先会否定使用它们的计算效率优势。
我正在阅读Paul Graham 的On Lisp,试图更好地理解编程的函数式风格。在第 3 章中,他提到函数式程序“通过返回值来工作”,而不是产生副作用。我不太明白该声明对如何操作和表示过程的中间结果的影响。如果函数式程序返回一个值,那么使用捕获它(let)是否等同于使用(lambda)函数?
下面的示例显示了函数 的定义,(group)使用 lambda 函数捕获中间结果。(group)接受一个列表src和一个数字n,并将列表元素细分为k大小为 的组n。
(defun group (src n acc)
(funcall
#'(lambda (back)
(cond
((consp back)
(group back n (cons (subseq src 0 n) acc)))
(t
(reverse (cons src acc)))))
(nthcdr n src)))
Run Code Online (Sandbox Code Playgroud)
该函数的最后一行通过获取(nthcdr n src). 然后,这个结果作为参数传递给 lambda 函数,该函数决定如何src根据参数进行处理。这是纯粹的功能代码,没有副作用。另一方面,我可以用(group)以下方式定义:
(defun group (src n acc)
(let ((back (nthcdr n src)))
(cond …Run Code Online (Sandbox Code Playgroud) 我一直在阅读GNU Emacs Calculator手册,以寻找如何以编程方式调用lisp程序中现有函数的说明.
我已经检查了"编程"一节,但它似乎与扩展计算器有关,而不是使用计算器进行编程.有一个名为"从你的Lisp程序调用Calc"的部分讨论了calc-eval程序员可用的函数,但到目前为止,我还没能在SBCL中调用该函数.
似乎可以从Emacs Lisp以编程方式调用计算器函数,但我很想知道SBCL中是否也有类似的功能.