问题:我使用EventBus的greenrobot通过一些事件。不幸的是,对于在两个之间fragments不传递数据的情况,它对我有用。因此,该事件不会被触发。
问题:我会误解这个概念吗?还是我的代码有错误?
注意:两个片段在发送事件时都存在。一个fragment是父母,另一个是孩子以显示详细信息。
详细片段:
public class DetailFragment extends Fragment {
(...)
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.getDefault().post(new IntentRefresh());
}
});
(...)
}
Run Code Online (Sandbox Code Playgroud)
EventBus类别:
public class IntentRefresh {
public IntentRefresh (){}
public void refreshParent() {
}
}
Run Code Online (Sandbox Code Playgroud)
父片段:
public class ParentFragment extends Fragment {
(...)
@Override
public void onPause() {
super.onPause();
EventBus.getDefault().unregister(this);
}
@Override
public void onResume() {
super.onResume();
EventBus.getDefault().register(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void …Run Code Online (Sandbox Code Playgroud) 我正在写Haskell一个函数,它获取两个类型列表,Int并将一个列表的值添加到另一个列表中.
例如:addElements [1,2,3] [4,5,6]将给出输出:[5,7,9]
到目前为止我的功能:
addElements :: [Int] -> [Int] -> [Int]
addElements [] [] = []
addElements x:xs [] = x:xs
addElements [] y:ys = y:ys
addElements x:xs y:ys = [x+y] ++ addElements xs ys
Run Code Online (Sandbox Code Playgroud)
我一直收到错误:
模式中的解析错误:addElements失败,模块已加载:无
我没有得到任何其他信息 - 我做错了什么?
我必须编写一个函数choose l n,打印所有可能组合n的列表以选择列表的元素l.
作为一个例子,呼叫choose [1,2,3] 2返回[[1,2], [1,3], [2,3]]或[[2,1], [3,1], [3,2]]
不幸的是我不明白解决方案:
choose :: [a] -> Int -> [[a]]
choose _ 0 = [[]]
choose [] _ = []
choose (x:xs) n = (map (\ys -> x:ys) (choose xs (n-1))) ++ (choose xs n)
Run Code Online (Sandbox Code Playgroud)
我理解前两个陈述.最后一行对我来说并不清楚.
有人可以解释一下吗?
我有一个获取列表并必须返回其最小元素的函数。
不幸的是,我一直遇到这个问题:
解析模式错误:最小
我做错了什么?
minim :: [Int] -> Int
minim [] = 0
minim [x] = x
minim x:xs = min x (minim xs)
min :: Int -> Int -> Int
min a b
| a > b = b
| a < b = a
Run Code Online (Sandbox Code Playgroud) recursion haskell functional-programming pattern-matching parse-error