有什么办法可以用UITapGestureRecognizer传递参数吗?我已经看到这回答了Objective-c但是找不到快速的答案
test.userInteractionEnabled = true
let tapRecognizer = UITapGestureRecognizer(target: self, action: Selector("imageTapped4:"))
// Something like text.myParamater
test.addGestureRecognizer(tapRecognizer)
Run Code Online (Sandbox Code Playgroud)
然后在func imageTapped4(){}下接收myParameter
我有一个片段,其中计时器在初始化时立即开始运行,并且每 6 秒显示一个不同的图像。
我还没有完全弄清楚这个计时器是如何工作的,但不知何故我让它运行起来,并且我知道计时器在不同的线程中运行......甚至不确定这到底意味着什么:)
但是当我加载不同的片段时,计时器会导致崩溃。所以我想我必须在活动关闭时取消计时器?
这让我想到两个问题。1) 我可以从任何地方运行 myTimer.cancel 吗?如果是,我如何从我的主要活动或其他片段运行它。
2)有没有像 onCloseActivity 这样的东西我可以用于这个片段。这样我一离开片段就可以取消计时器吗?
这就是我启动计时器的方式:
// 计时器 计时器 myTimer;
/////////////////////
/////// timer ///////
/////////////////////
private void runTimer() {
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 5000, 5000);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
// next image if THIS one is loaded
nextImage();
}
};
private void TimerMethod() {
getActivity().runOnUiThread(Timer_Tick);
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误: getActivity().runOnUiThread(Timer_Tick); 当我加载不同的片段时导致错误。
E/AndroidRuntime:致命异常:Timer-1 进程:com.murmurcalgary.murmurcalgaryevolvd,PID:8668 java.lang.NullPointerException:尝试调用虚拟方法 'void android.support.v4.app.FragmentActivity.runOnUiThread(java.lang. …
我试图获得任何一个月1日的工作日.我试过这个,但它没有给我正确的号码
mycal = new GregorianCalendar(2016, 10, 1);
Integer firstDayOfMonth = mycal.get(Calendar.DAY_OF_WEEK);
Run Code Online (Sandbox Code Playgroud)
2016-10-01是一个星期六,安卓工作室回答了3.
2017年4月1日也是星期六,但我得到2.不知道我在这里做错了什么.