我在正确创建和发送通知时遇到此问题.我在Lollipop 5.0 update这里阅读了新的通知设计规范:https://material.google.com/style/icons.html和https://material.google.com/patterns/notifications.html,我意识到图标需要white按顺序排列正确显示.这很好,我完全明白,但我希望我的通知显示一张图片,显然不能是白色的.然而,令我感到困惑的是,当我尝试在手机上呈现通知时,一切正常.它看起来像这样:
但是,在我朋友的手机上,它看起来像一个白色方块,如下所示:
这很奇怪,因为我们都有相同版本的Android,版本6.0.1.这是我用来发送通知的代码:
private class NotificationPicture extends AsyncTask<String, Void, Bitmap> {
Context context;
String userId;
String postId;
String name;
String notificationBody;
String from;
public NotificationPicture(Context context) {
super();
this.context = context;
}
@Override
protected Bitmap doInBackground(String... params) {
userId = params[0];
postId = params[1];
name = params[2];
notificationBody = params[3];
from = params[4];
try {
URL url = new URL("https://graph.facebook.com/" + userId + "/picture?type=large");
HttpURLConnection connection = (HttpURLConnection) …Run Code Online (Sandbox Code Playgroud) notifications android bitmap android-5.0-lollipop notification-icons
我对Java中的布尔值有疑问.假设我有一个这样的程序:
boolean test = false;
...
foo(test)
foo2(test)
foo(Boolean test){
test = true;
}
foo2(Boolean test){
if(test)
//Doesn't go in here
}
Run Code Online (Sandbox Code Playgroud)
我注意到在foo2中,布尔测试没有改变,因此不会进入if语句.那我怎么去换呢?我查看了布尔值但我找不到一个将测试从"设置"为true的函数.如果有人能帮助我,这将是伟大的.
我有一些未提交或未推送到我正在本地计算机上工作的分支的代码,因为该代码尚未起作用。但是,我只是想将该代码从一台计算机移动到另一台计算机,而不会影响分支。我该怎么办?例如,我的代码在计算机A上,我在一个名为“ develop”的分支上工作,我从中提取并更新代码。我不想在开发中进行任何更改,但想将自己编写的代码移至计算机B。我该怎么做?如果有人可以帮助,那就太好了。谢谢!
我有一个Firebase实例,我想在其中存储我想要存储到firebase中的值的字典.我查看了文档https://www.firebase.com/docs/ios/guide/saving-data.html作为参考,但似乎无法使其工作.以下是我的尝试:
//Declared above are the currentUser values as so:
var currentUserFirstName: String!
var currentUserLastName: String!
var currentUserObjectID: String!
var attendeesArray = ["objectID": currentUserObjectID, "name": currentUserFirstName + " " + currentUserLastName]
var eventRefChild = EventReference.childByAutoId()
eventRefChild.setValue([
"eventName":eventName.text,
"attendees": attendeesArray,
"eventCreator": currentUserFirstName
])
Run Code Online (Sandbox Code Playgroud)
但我一直在说错误:Could not find an overload for '+' that accepts the supplied arguments当我尝试做的时候eventRefChild.setValue([...,老实说我不太清楚为什么会遇到这个问题.任何帮助,将不胜感激!
编辑:变量EventReference分配如下:EventReference = Firebase(url:"<Insert Firebase URL>")
而且里面currentUserFirstName和currentUserLastName是一个人的姓和名来自抓起Facebook所以它会看起来像Bob Smith分别.
我在设置Firebase对象的优先级时遇到问题.以下是我的尝试:
第一个是我如何将Post对象保存到Firebase,保持优先级低.我会这样做,0 - date.getTime()因为我知道Firebase的文档说优先级是sorted numerically by priority, small to large.这就是我所做的:
private Firebase firebaseRef = new Firebase("https://<DataBase>.com/");
private Firebase currentUserPath = firebaseRef.child("users/" + userId);
public void savePostToFirebase(final Post post, Location location) {
//Firstly, we need to keep track of all posts so we put them into a posts path.
final Firebase postsRef = firebaseRef.child("posts").push();
String postId = postsRef.getKey();
post.setId(postId);
Date date = new Date();
postsRef.setValue(post, 0 - date.getTime());
//Next, we need to set that post …Run Code Online (Sandbox Code Playgroud) 我是新手,可以通过https://firebase.google.com/docs/cloud-messaging/server在Android应用中使用FCM通知.我正在阅读它并发现在关于FCM Server页面要求中,它说明如下:
您必须在您的环境中实施的应用服务器.此应用服务器使用适当的XMPP或HTTP协议通过所选的FCM连接服务器将数据发送到客户端应用程序
但是,我对此感到非常困惑.当我在文章中阅读更多内容时,我发现有一个API看起来像这样:
POST http://fcm.googleapis.com/fcm/send
如果我使用类似的东西调用此API OkHttpClient并构建我的请求,(假设我有身份验证标头和POST主体)
private void sendRegistrationToServer(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder().add(“Body", "").build();
//Assuming I have authentication and body put in
Request request = new Request.Builder().url("http://fcm.googleapis.com/fcm/send”).post(body).build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
理论上,我是否能够通过我想要的任何信息向该设备发送通知?我可以通过以下课程收到消息:
public class NotificationService extends FirebaseMessagingService {
...
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
Log.d(TAG, "From: " + remoteMessage.getFrom());
// …Run Code Online (Sandbox Code Playgroud) 我想在数据框中找到值的平均值.例如,如果我有以下数据:
ID Value Status
1 10 A
2 15 B
3 20 A
Run Code Online (Sandbox Code Playgroud)
我想找到状态为A的所有值的平均值.我该怎么办?
这是我的尝试:
dataframe$balance.mean(dataframe$status == 'A')
Run Code Online (Sandbox Code Playgroud)
但我不断收到错误消息Error: attempt to apply non-function.谁能帮我吗?谢谢!
我想将信息从a传递ViewController给a,UITabBarController以便我可以从视图控制器的第3个选项卡中访问某些信息UITabBarController.
但是,问题是当我尝试这样做时,我的程序会一直崩溃.到目前为止,这是我的代码:
我这样称呼segue:
self.firstName = user.first_name
self.lastName = user.last_name
self.performSegueWithIdentifier("OffersView", sender: self)
Run Code Online (Sandbox Code Playgroud)
我重写了这个prepareForSegue函数,以便我可以像这样传递这个函数中的信息:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "OffersView"){
let barViewControllers = segue.destinationViewController as UITabBarController
let destinationViewController = barViewControllers.viewControllers![2] as ProfileController
destinationViewController.firstName = self.firstName
destinationViewController.lastName = self.lastName
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试设置destinationViewController(在上面代码的第二行)时,我的代码崩溃了.我不确定为什么我看了很多StackOverflow帖子,比如
Swift标签栏视图prepareforsegue并将数据从tableview传递到Swift中的标签栏视图控制器.但没有取得多大成功.我是否可能需要创建一个UITabBarControllerDelegate类并通过它传递信息?任何提示将不胜感激.谢谢!
我有一个RelativeLayout与EditText具有Button下方。理想情况下,当用户单击EditText并填充多行文本时,RelativeLayout也会随着行的增加而扩展。但是,我现在的行为是,在EditText填充了 的第一行后,键盘开始覆盖其Button下方,并且在 中的 3-4 行文本之后EditText,Button消失在键盘下方。有没有办法让它在我输入文本时,整个布局的大小增加,以便按钮保持在键盘上方?这是我的代码:
AndroidManifest.xml:
<activity
android:name="<Name of project>.activity.Comments"
android:configChanges="orientation|keyboardHidden"
android:label="Comments"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
Run Code Online (Sandbox Code Playgroud)
评论.xml:
<RelativeLayout
android:id="@+id/send_message"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_margin="4dp"
android:layout_alignParentBottom="true">
<EditText
android:fontFamily="sans-serif"
android:id="@+id/write_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:gravity="left"
android:textSize="16sp"
android:textColor="@color/black"
android:cursorVisible="false"
android:textColorHint="@color/material_color_grey_300"
android:hint="@string/commentBack"
android:background="@drawable/edittext_bg"
android:inputType="textMultiLine"
android:isScrollContainer="true"
android:maxLength="200"
android:scrollHorizontally="false" />
<Button
android:fontFamily="sans-serif-medium"
android:id="@+id/send_comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="@color/colorPrimary"
android:layout_marginTop="8dp"
android:text="@string/send"
android:background="@null"
android:layout_below="@id/write_comment"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:textAllCaps="false" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我试图添加一个android:isScrollContainer="true"想法,即它会创建一个滚动容器,EditText以便它有助于扩展布局,但这似乎不起作用。任何帮助,将不胜感激。谢谢! …
android android-layout android-softkeyboard android-edittext android-relativelayout
我只想替换文件中的最后一个字符。原因是因为当我写入文件时,在写入文件的最后一点,最后,包含了一个额外的内容。我只是不想,在最后写那个,而是想]尽可能用 a 替换它。这是我的尝试:
reader = csv.DictReader(open(restaurantsCsv), delimiter=';')
with open(fileName, 'w+') as textFile:
textFile.write('[')
for row in reader:
newRow = {}
for key, value in row.items():
if key == 'stars_count' or key == 'reviews_count':
newRow[key] = float(value)
else:
newRow[key] = value
textFile.write(json.dumps(newRow) + ',')
textFile.seek(-1, os.SEEK_END)
textFile.truncate()
textFile.write(']')
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我到达textFile.seek(-1, os.SEEK_END)我想要查找文件末尾的位置并且我想删除,文件中的最后一个,但是我收到一条错误消息,说io.UnsupportedOperation: can't do nonzero end-relative seeks. 因此,我这样做是为了让我的文件用wb+参数打开,但如果我这样做,那么我只能将字节写入我的文件,而不是字符串。有什么办法可以简单地用 a]而不是a替换文件中的最后一个字符,?我知道我可以简单地打开文件进行读取,截断文件,然后再次打开文件以写入最后一个,]但这似乎效率低下(如下所示):
with open(filename, 'rb+') as …Run Code Online (Sandbox Code Playgroud)