小编Kam*_*mil的帖子

如何在MainActivity中解除/关闭/解除ActionBar中的SearchView?

我在输入值后尝试清除并关闭SearchView.我找到了一个解决方案,但它会关闭搜索,如果我再次尝试搜索,则不会执行任何操作.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main_actions, menu);

    searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setOnQueryTextListener(searchListener);

    return super.onCreateOptionsMenu(menu);
}

SearchView.OnQueryTextListener searchListener = new SearchView.OnQueryTextListener(){
    @Override
    public boolean onQueryTextChange(String arg0) {
        return false;
    }
    @Override
    public boolean onQueryTextSubmit(String query) {
        new JsoupGetData("http://api.openweathermap.org/data/2.5/find?q="+ query + "&lang=pl").execute();
        try {
            searchView.onActionViewCollapsed();
        }
        catch(Exception ex){
            ex.printStackTrace();
            System.out.println(ex);
        }
        return true;
    }
};
Run Code Online (Sandbox Code Playgroud)

我只能第一次搜索.每次下次它只关闭我的输入键盘而什么都不做.如何以正确的方式执行?

编辑.建议的更改如下所示:

        try {
            searchView.setIconified(true);
        }
Run Code Online (Sandbox Code Playgroud)

activity_main_actions.xml:

   <!-- Search Widget -->
   <item android:id="@+id/action_search"
       android:icon="@drawable/ic_action_search"
       android:title="@string/action_search"
       android:showAsAction="always"
       android:actionViewClass="android.widget.SearchView"/>
Run Code Online (Sandbox Code Playgroud)

EDIT2:

showAsAction="always|collapseActionView"当我点击搜索时,我改变但它关闭了我的应用程序.

我还将监听器放在OnCreateOptionsMenu中以查看它是否会改变任何内容:

@Override
public boolean onCreateOptionsMenu(Menu …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar searchview

22
推荐指数
3
解决办法
3万
查看次数

如何在Oracle中有条件地插入?

我在这里读到语法如下所示:

INSERT
WHEN ([Condition]) THEN
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
ELSE
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
SELECT [ColumnName] FROM [TableName];
Run Code Online (Sandbox Code Playgroud)

但我不想从另一个表中提供值.我只想打字,所以我有:

INSERT 
WHEN EXISTS (SELECT 1 FROM FOO WHERE NAME = 'JOE') 
THEN
INTO BAR (NAME, AGE) 
VALUES ('JOE', 50)
Run Code Online (Sandbox Code Playgroud)

这会产生异常:ORA-00928:缺少SELECT关键字.

如果在另一个表中找到给定值,我想执行插入.

sql oracle

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

如何获取Flux中引发异常的元素?

假设我有一个 ids: 数组[9, 8, 7, 6]

我做了一些处理,一个元素导致抛出异常。我想以自己的方式处理这种情况(比如说记录它)并让其他元素顺其自然。

我怎么知道是哪一个?我需要在onError处理中包含这个元素。

Flux.fromArray(myArray)
  .flatMap(element -> {
    var foo = processMyEl(element);  
    return anotherProcess(foo); // this returns Mono
  })
  .onErrorOperator(element -> handleMyError(element)) // this line is what I need
  
Run Code Online (Sandbox Code Playgroud)

所以,我看到,这几乎很好.onErrorContinue((error, obj) ->,它发出一个错误和一个对象。

但这obj不是element导致异常的对象,而是造成异常的对象。它发生在我的处理方法内部,并且不必每次都是同一类型的对象。

.onErrorReturn(...)- 不是我真正想要的

.doOnError(error ->- 没有我的元素的信息

.onErrorResume(error ->- 与上面相同

有人建议我可以创建自己的异常并将元素传递到那里,然后从异常中检索它。但我应该如何抛出异常呢?

我应该采用旧的尝试捕获方式吗:

Flux.fromArray(myArray)
  .flatMap(el -> {
    try {
      var foo = processMyEl(el);  
      return anotherProcess(foo); // this returns Mono
    } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

java reactive-programming project-reactor

6
推荐指数
1
解决办法
1422
查看次数

如何将Xpath转换为CSS

我的xpath是: /html/body/div/table/tbody/tr[2]/td[4]

我需要一个CSS在jsoup选择器中使用它.

我在xpath和css之间找到了一个比较:在这里,并且在他们的例子(Second <E> element anywhere on page)中说我不能这样做.Xpath xpath=(//E)[2]CSS N\A.

也许我找不到我想要的东西.有任何想法吗?

这是我要解析的html(我需要获取值:13):

<div class=tablecont>
    <table width=100%>
        <tr>
            <td class=header align=center>Panel Color</td>
            <td class=header align=center>Locked</td>
            <td class=header align=center>Unqualified</td>
            <td class=header align=center>Qualified</td>
            <td class=header align=center>Finished</td>
            <td class=header align=center>TOTAL</td>
        </tr>
        <tr>
            <td align=center>
                <div class=packagecode>ONE</div>
                <div>
                <div class=packagecolor style=background-color:#FC0;></div>
                </div>
            </td>
            <td align=center>0</td>
            <td align=center>0</td>
            <td align=center>1</td>
            <td align=center>12</td>
            <td align=center class=rowhead>53</td>
        </tr>
        <tr>
            <td align=center>
                <div class=packagecode>two</div>
                <div>
                    <div class=packagecolor style=background-color:#C3F;></div> …
Run Code Online (Sandbox Code Playgroud)

css xpath css-selectors html-parsing jsoup

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

如何使用java jsoup连接到站点并检索数据?

我知道有很多信息,但我找不到任何适合我的问题.我想从我需要登录的页面收集数据.这是我正在尝试做的事情:

我收集Cookies做:

Connection.Response res = Jsoup
      .connect("http://website.com/login?event=doLogin")
      .execute();
Map <String,String> cookies = res.cookies();
Run Code Online (Sandbox Code Playgroud)

然后阅读html中的隐藏值:

 Document doc = Jsoup
      .connect("http://website.com/login?event=doLogin")
      .cookies(cookies)
      .get();


        html = doc.toString();
        length = html.length();
        counter = 0;

        for (int i = 0; i < length; i++) {
            if (html.startsWith("document.write", i)){
                name[counter] = html.substring(i + 41, i + 144);
                value[counter] = "Login";
                counter++;
            }
            if (html.startsWith("hidden", i)) {
                name[counter] = html.substring(i + 13, i + 81);
                value[counter] = html.substring(i + 90, i + 123);
                counter++;
            }
        }
Run Code Online (Sandbox Code Playgroud)

最后,我想使用此信息使用Cookie和隐藏值进行登录: …

java jsoup

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

如何在Java中的Y线程上运行X任务?

我想确保在执行100个任务的5个线程上执行任务的平均时间.

为了节省时间,我使用了 nanoTime()

任务是调用一个特定的方法,让我们调用它foo(); 我不创建任何其他类.

在我的代码中,我创建了一个任务:

Runnable thExecute = new Runnable(){
  @Override
  public void run(){
    foo();
  }
};
Run Code Online (Sandbox Code Playgroud)

然后我创建一个线程:

Thread th = new Thread(thExecute);
long start = System.nanoTime();
th.run();
long stop = System.nanoTime();
Run Code Online (Sandbox Code Playgroud)

如果我有与线程相同数量的任务,这将是很好的.我试图创建线程和任务的数组:

Runnable[] thExecutes = new Runnable[100];
Thread[] ths = new Thread[5];
Run Code Online (Sandbox Code Playgroud)

但现在我不知道接下来该做什么.我知道他们应该以某种方式排队,可能我应该Executor上课.我使用Java 6.

编辑:起初我并不是说我写的东西.现在我知道我想要平均时间+最长时间.

java multithreading executorservice multitasking threadpoolexecutor

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

如何在自定义指标中调用 OrderSend?

我有一个指示器,通过声音和警报发出动作信号:

PlaySound("news.wav");
Alert(Symbol()," make an action"); 
Run Code Online (Sandbox Code Playgroud)

我想在那里添加 OrderSend 函数来自动买卖,它看起来像这样:

int ticket;        
PlaySound("news.wav");
Alert(Symbol()," make an action"); 
ticket=OrderSend(Symbol(),OP_SELL,1.0,Bid,2,Bid+7*Point,Bid-7*Point,"Sell",0,0, Red); 
Run Code Online (Sandbox Code Playgroud)

时机成熟时,有信号,有警报,但没有命令。

据说交易函数可以在专家和脚本中使用:交易函数, 但它必须以某种方式完成。

怎么做到呢?

mql4

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

如何在水平条形图中添加垂直线?

我必须按照日期作为x轴的图表:

水平条形图

如何在今天的日期显示条形图顶部的白色垂直线?

excel charts

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

PostgreSQL 相当于从 Oracle 插入的内容是什么?

我想创建一个触发器来捕获INSERTUPDATE根据操作执行某些操作。在 Oracle 中可以这样做:

CREATE OR REPLACE TRIGGER ABC_BIU BEFORE INSERT OR UPDATE ON ABC
FOR EACH ROW
BEGIN
  IF INSERTING THEN
    ...
  END IF;

 ...
END;
Run Code Online (Sandbox Code Playgroud)

这里提到that是Oracle中INSERTING与the结合使用的一个关键字,在这里你可以看到用法:TRIGGER

IF INSERTING THEN ... END IF;
IF UPDATING THEN ... END IF;
Run Code Online (Sandbox Code Playgroud)

oracle postgresql triggers plpgsql database-trigger

0
推荐指数
1
解决办法
1368
查看次数