小编djB*_*jBo的帖子

ListView onClick事件不会使用链接的电子邮件地址触发

我有一个带有ListAdapter的直接ListView和用于列表的自定义onItemClick方法.我的ListView项目可以单击以执行其他功能.但是,我的一些ListView元素包含一个应该可以点击的电子邮件地址.

我找到了Linkify,并根据文档将其添加到电子邮件地址textview中.

执行此操作后,包含此类"可单击"文本视图的ListView项目现在不再可单击以执行其他功能.

我在创建整个视图后尝试添加OnItemClickListener,但无济于事:(

有什么想法如何让我的ListView项目可点击,尽管它们包含一个Linkified textView?


我最深切的抱歉是在开始提问之前不再进一步搜索.我找到了问题的答案,并将其作为答案发布.

android listview linkify

11
推荐指数
1
解决办法
2965
查看次数

如何在MySQL上正确循环存储函数?

我很难获得一个非常简单的存储过程.请考虑以下文章表格片段:

id    replaced_by     baseID
 1              2          0
 2              3          0
 3              0          0
Run Code Online (Sandbox Code Playgroud)

一个简单的分层表,使用copy-on-write.编辑文章时,当前文章的replacement_by字段将设置为其新副本的ID.

我添加了一个baseID字段,将来应该存储一篇文章的baseID.在上面的例子中,有一篇文章(例如id 3).它的baseID是1.

为了获取baseID,我创建了以下存储过程:

DELIMITER $$

CREATE FUNCTION getBaseID(articleID INT) RETURNS INT
BEGIN
    DECLARE x INT;
    DECLARE y INT;
    SET x = articleID;
    sloop:LOOP
        SELECT id INTO y FROM article WHERE replaced_by_articleID = x;
        IF y IS NOT NULL THEN
            SET x = y;
            ITERATE sloop;
        ELSE
            LEAVE sloop;
        END IF;  
    END LOOP;
    RETURN x;
END $$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,直到我实际调用函数使用:

SELECT getBaseID(3);
Run Code Online (Sandbox Code Playgroud)

我希望,函数返回1.我甚至愿意理解它可能需要一秒钟.相反,机器的CPU上升到100%(mysqld).

我甚REPEAT .. UNTIL …

mysql loops stored-functions

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

Javascript/HTML表单字段命名问题

请考虑以下简单形式:

<form method="GET" action="handle.php">
  <input type="hidden" name="action" value="search">
</form>
Run Code Online (Sandbox Code Playgroud)

表单提交由Javascript(iui)在ajax调用中执行.从表单中正确收集所有字段.然后Javascript想要将ajax调用发送到" form.action ".

这是我的问题开始的地方.对象表单的类型为HTMLFormElement.表单的action属性应该是string类型,并且应该包含"handle.php".经过几个小时的调试,我注意到form.action现在是HTMLInputElement类型.

我的问题:这是正确的Javascript行为吗?我永远不会定义一个带有表单属性名称的表单字段,这种情况会发生.与此同时,我通过不同地命名我的字段来解决问题.

提前感谢任何建议......


找到一种简单的方法来显示我的问题.首先是有问题的表格:

<form action="test.php">
    <input type="hidden" name="action" value="test">
    <input type="button" onclick="alert(this.form.action);">
</form>
Run Code Online (Sandbox Code Playgroud)

而形式是恰当的:

<form action="test.php">
    <input type="hidden" name="NOT_AN_ATTRIBUTE_NAME" value="test">
    <input type="button" onclick="alert(this.form.action);">
</form>
Run Code Online (Sandbox Code Playgroud)

在第一个中,弹出窗口中的"[object HTMLInputElement]",在第二个:"http://localhost/test.php"中.

html javascript php forms field

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

强制参数化类型作为构造函数参数是正确的

我一直在寻找相当长的一段时间,并没有真正接近我需要的东西.

示例代码:

public class MyQueue<E extends Delayed & Serializable> extends DelayQueue<E> {
    private Class<E> mClass;
    public MyQueue(Class<E> type) {
        super();
        mClass = type;
    }
}
Run Code Online (Sandbox Code Playgroud)

MyQueue的创建方式如下:MyQueue q<MyObj> = new MyQueue<MyObj>(MyObj.class);.

我的问题:如何以这种方式编写构造函数,参数"type"是正确的参数化类型"E extends Delayed&Serializable"?

我希望我已经解释好了.

提前感谢您的任何帮助.

编辑:从答案和评论我起初无法选择正确的答案.因此,我第一次尝试用我想要的东西来增强我的问题,以及我现在最终的结果.例如,在原始帖子中回答我发现的内容.

显然我需要知道的是参数化类型E在构造时间上的类.对于透明度,队列使用E类名称(即MyObj)传递给后备存储.经过大量的阅读后,我逐渐明白,由于类型擦除,我无法更容易获得这些信息.我不得不将该类不仅作为参数化类型传递,还作为构造函数变量传递.

我担心我偶然会这样调用构造函数(MyObj和OthrObj都实现了Delayed和Serializable):

MyQueue q<MyObj> = new MyQueue<MyObj>(OthrObj.Class);
Run Code Online (Sandbox Code Playgroud)

我更好的问题应该是:如何以这种方式编写构造函数,强制构造函数变量E匹配参数化类型E?

它本来会更有意义,它可能更容易理解我所写的内容.从技术上讲,大多数人在某种意义上都是正确的,并且在测试了许多变化之后,我得出了我已经做过的结论,所以咯咯笑对不起 seh和Tnem完全正确并且都值得学分.

java generics

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

与ActiveMQ并行处理多条消息

我想使用简单的Processor/AsyncProcessor作为目标并行处理队列中的消息.处理器每条消息需要一点时间,但每条消息可以单独处理,因此可以同时处理(在健康的边界内).

我很难找到例子,尤其是关于驼峰路线的xml配置.

到目前为止,我已经定义了一个线程池,路由和处理器:

<threadPool id="smallPool" threadName="MyProcessorThread" poolSize="5" maxPoolSize="50" maxQueueSize="100"/>
<route>
    <from uri="broker:queue:inbox" />
    <threads executorServiceRef="smallPool">
        <to uri="MyProcessor" />
    </threads>
</route>
<bean id="MyProcessor" class="com.example.java.MyProcessor" />
Run Code Online (Sandbox Code Playgroud)

我的处理器看起来像:

public class MyProcessor implements Processor {
    @Override
    public void process(Exchange exchange) throws Exception {
        Message in = exchange.getIn();
        String msg = in.getBody(String.class);      
        System.out.println(msg);
        try {
            Thread.sleep(10 * 1000); // Do something in the background
        } catch (InterruptedException e) {}
        System.out.println("Done!");
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我将消息发布到队列时,它们仍然被逐个处理,每个消息延迟10秒(我的"后台任务").

任何人都可以指出我使用定义的线程池处理消息的正确方向或解释我做错了什么?

parallel-processing activemq-classic apache-camel

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