如何在IntelliJ中将facebook sdk添加到我的android项目中?我熟悉如何将库项目添加到Eclipse中的现有项目,但不是在IntelliJ中.谁知道怎么样?
我想从命令行搞砸API.我正在寻找一个支持Oauth的良好命令行工具.
有什么建议?
我正在尝试解析一个JSON对象,其中一部分看起来像这样:
{
"offer":{
"category":"Salon",
"description":"Use this offer now to enjoy this great Salon at a 20% discount. ",
"discount":"20",
"expiration":"2011-04-08T02:30:00Z",
"published":"2011-04-07T12:00:33Z",
"rescinded_at":null,
"title":"20% off at Jun Hair Salon",
"valid_from":"2011-04-07T12:00:31Z",
"valid_to":"2011-04-08T02:00:00Z",
"id":"JUN_HAIR_1302177631",
"business":{
"name":"Jun Hair Salon",
"phone":"2126192989",
"address":{
"address_1":"12 Mott St",
"address_2":null,
"city":"New York",
"cross_streets":"Chatham Sq & Worth St",
"state":"NY",
"zip":"10013"
}
},
Run Code Online (Sandbox Code Playgroud)
等等....
到目前为止,通过这样做,我能够非常简单地解析:
JSONObject jObject = new JSONObject(content);
JSONObject offerObject = jObject.getJSONObject("offer");
String attributeId = offerObject.getString("category");
System.out.println(attributeId);
String attributeValue = offerObject.getString("description");
System.out.println(attributeValue);
String titleValue = offerObject.getString("title");
System.out.println(titleValue);`
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试'名称'时,它将无法正常工作.
我试过了: …
long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS
Run Code Online (Sandbox Code Playgroud)
返回53.为什么?空白有多重要?即便如此.我们怎么得到53?
这个怎么样?
def test_flexible_quotes_can_handle_multiple_lines
long_string = %{
It was the best of times,
It was the worst of times.
}
assert_equal 54, long_string.size
end
def test_here_documents_can_also_handle_multiple_lines
long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS
assert_equal 53, long_string.size
end
Run Code Online (Sandbox Code Playgroud)
是这种情况,因为%{case将每个/n字符统计为一个字符,并且在第一行之前认为是一个字符,一个在结尾处,然后在第二行结尾处,而在这种EOS情况下只有一个在第一行之前线和一线后一线?换句话说,为什么前者54和后者53?
我有一个即时通讯读取和写入,并从对象fileinputstreams/objectinputstreams和objectinputstreams/objectoutputstreams.我一直得到java感染的错误serialversionUID,但发现另一个错误.
在我的课堂上,我已经实现serializable并拥有一个static final long serialVersionUID = 1L;我认为足够的领域.
我是java序列化的新手.我在这里错过了什么?
编辑如果重要,我实际上是在尝试写和读**ArrayList<MyObject>**
这是完整的痕迹:
java.io.InvalidClassException: com.luxurymode.pojos.Reminder; Incompatible class (SUID): com.luxurymode.pojos.Reminder: static final long serialVersionUID =4209360273818925922L; but expected com.luxurymode.pojos.Reminder: static final long serialVersionUID =1L;
W/System.err( 4504): at java.io.ObjectInputStream.verifyAndInit(ObjectInputStream.java:2723)
W/System.err( 4504): at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1848)
W/System.err( 4504): at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:826)
W/System.err( 4504): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2066)
W/System.err( 4504): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:929)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240)
W/System.err( 4504): at java.util.ArrayList.readObject(ArrayList.java:662)
W/System.err( 4504): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 4504): …Run Code Online (Sandbox Code Playgroud) 我有这样的方法:
public static String getFormattedDateDifference(DateTime startDate, DateTime endDate) {
Period p = new Period(startDate, endDate);
return PeriodFormat.getDefault().print(p);
}
Run Code Online (Sandbox Code Playgroud)
我想要打印出打印的秒数和毫秒数.我怎样才能做到这一点?
有关正确使用Threadsvs. Handlersvs. 的问题有很多AsyncTask.(像这里和这里)
这些问题很好地解决了何时使用什么问题.我的问题更多的是关于某些类型案件的绩效影响.
作为一个例子,我经常看到其他人编写代码,他们只使用Threads这些代码来为将来安排一些代码执行.每当我看到这一点时,我本能地感觉要重构代码以使用a Handler而只是延迟发布一个帖子runnable.
这是一个示例,其中一个Thread用于更新某些媒体播放的搜索栏mediaplayer,然后是我的方式.
我看到了很多东西:
if (positionTracker != null && positionTracker.isAlive()
&& !positionTracker.isInterrupted()) {
return;
}
positionTracker = new Thread(new Runnable() {
public void run() {
int currentPosition = 0;
int total = player.getDuration();
while (player != null && CurrentPosition < total) {
try {
Thread.sleep(1000);
currentPosition = player.getCurrentPosition();
} catch (InterruptedException e) {
return;
} catch (Exception e) {
return; …Run Code Online (Sandbox Code Playgroud) 显然,这是一项昂贵/耗时的操作.有什么方法可以改善吗?
Bitmap bm = BitmapFactory.decodeStream((InputStream) new URL(
someUrl).getContent());
Run Code Online (Sandbox Code Playgroud)
我猜测真的没有办法避免这种相对激烈的操作,但想知道是否有人有任何调整他们可以推荐(除了缓存实际的位图,无论出于何种原因,这里都没有相关性)
我想检查给定的DateTime是在凌晨4点到早上8点之间还是在凌晨12点到凌晨3点之间.这样做的正确方法是什么?
这似乎可以解决问题:
DateTime start = new DateTime().withHourOfDay(4);
DateTime end = new DateTime().withHourOfDay(8);
Interval interval = new Interval(start, end);
if(interval.contains(now)) return true;
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我有一个RESTful API,多个客户端连接到(Web,iOS和Android应用程序).目前,用户只能使用用户名和密码创建帐户(电子邮件是可选的),并且它们在数据库中仅使用这些列表示.
用户通过POST登录到/ session端点,通过我们的"登录".API响应是一个新的秘密令牌(我们将其与用户名相关联).客户端使用此令牌对客户端发起的所有POST请求进行签名,我们的API稍后将使用该请求对请求进行身份验证.
但是,我们现在希望允许社交登录(Google+,FB,Twitter).我们的用户也希望使用社交登录以方便使用,但他们希望他们选择自己的随机用户名以显示在他们的评论旁边等.
我的问题:为了支持社交登录,我需要对API进行哪些更改?我是否需要对我的数据库模式进行重大更改以支持此操作,如果是,那究竟是什么?此外,服务器是否需要了解社交登录提供商授予的访问令牌的任何信息?
请注意,此功能的范围不包括将多个社交登录帐户与同一个人关联的功能.我想让事情变得尽可能简单.
一般对如何正确实现这一点感到困惑.我更喜欢让事情尽可能简单,以便为简单的解决方案增加额外的分数.任何建议将不胜感激.