小编sco*_*eus的帖子

即使使用FragmentTransaction.addToBackStack(),后退按钮也会关闭应用程序

我在stackoverflow上读到的其他问题都没有能够解决我的问题.据我所知,我正在做的一切正确.

我有一个带片段的主/细节流.

创建主活动后,主片段将加载以下代码:

    Fragment frag;
    frag = new MainListFragment();//<-- **the master fragment**

    FragmentManager fm = getFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();
    transaction.replace(R.id.fragment_container, frag);
    Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());
    transaction.commit();
Run Code Online (Sandbox Code Playgroud)

主片段有一个ListView; 单击列表项会显示详细信息片段,如下所示:

@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
    super.onListItemClick(listView, view, position, id);


    FragmentManager fm = getFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();
    SubListFragment frag = new SubListFragment();//<-- **the detail fragment**

    transaction.replace(R.id.fragment_container, frag);
    transaction.addToBackStack(null);
    transaction.commit();
    fm.executePendingTransactions();
    Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());

}
Run Code Online (Sandbox Code Playgroud)

现在,根据LogCat,我从主片段导航到细节片段后,BackStackEntryCount 从0变为1 …

android back-button android-fragments back-stack

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

Spring Boot 测试:@TestPropertySource 未覆盖 @EnableAutoConfiguration

我正在使用 Spring Data LDAP 从 LDAP 服务器获取用户数据。

我的文件结构如下所示:

main
  java
    com.test.ldap
      Application.java
      Person.java
      PersonRepository.java
  resources
    application.yml
    schema.ldif

test
  java
    Tests.java
  resources
    test.yml
    test_schema.ldif
Run Code Online (Sandbox Code Playgroud)

这是我的测试课:

import com.test.ldap.Person;
import com.test.ldap.PersonRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {PersonRepository.class})
@TestPropertySource(locations = "classpath:test.yml")
@EnableAutoConfiguration
public class Tests {

    @Autowired
    private PersonRepository personRepository;

    @Test
    public void testGetPersonByLastName() {
        List<Person> names = personRepository.getPersonNamesByLastName("Bachman");
        assert(names.size() > 0);
    }

}
Run Code Online (Sandbox Code Playgroud)

问题是,Spring Boot 正在加载application.ymlschema.ldif …

java spring spring-ldap spring-boot

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

如何为 systemd 日志创建日志条目?

我有一个service,我希望它journald在某些情况下为守护进程创建日志。到目前为止,我还没有找到任何关于如何执行此操作的说明。

我是否误解了 的预期用途journal?或者我确实缺少一些明显的东西?

service systemd

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

bash:使用 expect 来自动化 GPG 签名

我正在编写一个 bash 脚本,它可以在 YUM 存储库中自动签署 RPM 包。为了完成这项任务,我使用expect.

到目前为止,这是我的源代码:

/usr/bin/expect <<EOD
spawn bash -c "rpm --resign ${NEW_REPO}/packages/*.rpm"
expect "Enter pass phrase:"
send "${GPG_PASS}\r"
expect eof
EOD
Run Code Online (Sandbox Code Playgroud)

NEW_REPO是 YUM 存储库的路径,GPG_PASS是 GPG 密钥的密码。

在大多数情况下,这非常有效并且可以成功地对包进行签名。

问题:即使该目录包含 42 个包,此代码块也仅对 28-30 RPM 的包进行签名。从命令行手动签署一批 RPM 包工作正常,但expect我的脚本中的块只是在到达所有包之前停止。这是一些奇怪的怪癖expect,还是我做错了什么?欢迎提出解决方法/建议。

谢谢

bash rpm gnupg yum expect

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

ruby:检查两个变量是否是同一个实例

我有一个班级Issue,每个班级都有一个班级key.由于keys的意思是唯一的,我推翻这样两个比较操作Issue对象是基于比较了key,像这样:

def ==(other_issue)
  other_issue.key == @key
end
Run Code Online (Sandbox Code Playgroud)

但是,我正在处理一个案例,其中两个可能有两个变量引用一个相同的实例Issue,因此按键比较不会区分它们.有什么方法可以检查两个变量是否指向同一个地方?

ruby comparison object

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

ruby:打开文件对象到stdout

我是Ruby的新手,我正在尝试打开一个File指向的对象stdout.

我从这个问题中知道,重定向stdout到指向a File非常简单,但是重定向File到指向的是stdout什么?

我正在编写一个程序,我正在考虑为用户提供将部分输出写入文件的选项.如果他们选择该选项,则应写入所有输出stdout.

看到这个伪代码:

if output redirect option is selected
    o = File.open('given filename','w')
else
    o = File.open($stdout, 'w')
end
Run Code Online (Sandbox Code Playgroud)

这是一个可能的用例的伪代码:

puts 'Generating report for XYZ'
report = ReportGenerator::generateReport('XYZ')
o.puts report
Run Code Online (Sandbox Code Playgroud)

如您所见,如果未指定输出重定向选项,我只o希望将报告放入stdout.在"生成报告"消息,但是,我需要仍然被打印到stdout,所以重定向stdout将是麻烦的,尤其是因为我有更多的消息,并有更多的地方,其中我(可能)的输出流之间交替.

o = File.open($stdout, 'w') 是我不确定的部分.

ruby io stdout file

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

如何在 P4v 中更改我的工作区名称?

我想在 P4V 中重命名一个工作区。

到目前为止,我已尝试通过导航到“连接”->“编辑当前工作区”来执行此操作。但是,“工作区名称”字段不可编辑。

有谁知道是否可以这样做?

perforce p4v

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

bash:将=〜与包含#的正则表达式一起使用

好的,伙计们。我正在编写bash脚本,想将字符串与包含#使用=~运算符的正则表达式进行比较。

这是我到目前为止的内容:

if [[ ${line} =~ \s*\# ]]; then
     #do things
fi
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试#使用a 来转义\,根据本文,这应该是可能的。但是,这确实让我感到困惑。我的语法突出显示工具仍在突出显示后面的文本#,好像它是注释一样。

我的语法荧光笔不正确吗?逃逸会#干扰正则表达式的解析吗?有什么办法可以使用引号来避免此问题?

regex bash

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

对类型别名的行为感到困惑

考虑以下代码(也在Playground上):

package main

import (
    "fmt"
    "time"
)

type dur struct {
    time.Duration
}

type durWithMethods dur

type durWithoutMethods time.Duration

func main() {
    var d durWithMethods // works ??
    fmt.Println(d.String())
    
    var dWM durWithoutMethods
    fmt.Println(dWM.String()) // doesn't compile
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 的直接别名time.Duration不继承任何方法。是因为time.Duration是原始类型的别名吗?

types go

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