这是我的清单
<service android:name=".fcm.PshycoFirebaseMessagingServices">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".fcm.PshycoFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
当应用程序处于后台并且通知到达时,默认通知将会运行并且不会运行我的代码onMessageReceived.
这是我的onMessageReceived代码.如果我的应用程序在前台运行,而不是在后台应用程序时,则调用此方法.如何在应用程序处于后台时运行此代码?
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
// If the application is in the foreground handle both data and notification messages here.
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See …Run Code Online (Sandbox Code Playgroud) 你如何得到一个TextView被证明的文本(在左侧和右侧有文字冲洗)?
我在这里找到了一个可能的解决方案,但它不起作用(即使你将vertical-center更改为center_vertical等).
我试图从一组片段添加一个项目到选项菜单.
我创建了一个新MenuFragment类,并为我希望包含菜单项的片段扩展了这个.这是代码:
public class MenuFragment extends Fragment {
MenuItem fav;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
fav = menu.add("add");
fav.setIcon(R.drawable.btn_star_big_off);
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,onCreateOptionsMenu似乎没有运行.
我正在尝试获取视图左上角的绝对屏幕像素坐标.但是,我可以找到的所有方法,例如getLeft()并且getRight()不起作用,因为它们似乎都相对于视图的父级,因此给了我0.这样做的正确方法是什么?
如果它有帮助,这是为了"让图片重新整理"游戏.我希望用户能够绘制一个框来选择多个部分.我的假设是,做到这一点的最简单方法是getRawX(),并getRawY()从MotionEvent再兑布局保持件的左上角比较这些值.知道了件的大小,我就可以确定已经选择了多少件.我知道我可以使用getX()和getY()上MotionEvent,而是作为一个返回相对位置,使得确定哪个被选择件更困难.(我知道,这并非不可能,但似乎不必要地复杂化).
编辑:这是我用来尝试获取保持容器大小的代码,根据其中一个问题.TableLayout是包含所有拼图的表.
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
Log.d(LOG_TAG, "Values " + tableLayout.getTop() + tableLayout.getLeft());
Run Code Online (Sandbox Code Playgroud)
编辑2:这是我尝试过的代码,遵循更多建议的答案.
public int[] tableLayoutCorners = new int[2];
(...)
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
tableLayout.requestLayout();
Rect corners = new Rect();
tableLayout.getLocalVisibleRect(corners);
Log.d(LOG_TAG, "Top left " + corners.top + ", " + corners.left + ", " + corners.right
+ ", " + corners.bottom);
cells[4].getLocationOnScreen(tableLayoutCorners);
Log.d(LOG_TAG, "Values " …Run Code Online (Sandbox Code Playgroud) 我onActivityResult从mediastore图像选择返回,我可以使用以下内容获取图像的URI:
Uri selectedImage = data.getData();
Run Code Online (Sandbox Code Playgroud)
将其转换为字符串可以得到:
content://media/external/images/media/47
Run Code Online (Sandbox Code Playgroud)
或者路径给出:
/external/images/media/47
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法找到将其转换为绝对路径的方法,因为我想将图像加载到位图而不必将其复制到某处.我知道这可以使用URI和内容解析器完成,但这似乎在重新启动手机时中断,我想MediaStore在重新启动之间不会保持其编号相同.
在这个,这个和这个线程我试图找到如何在单个视图上设置边距的答案.但是,我想知道是否有更简单的方法.我会解释为什么我宁愿不想使用这种方法:
我有一个自定义Button,扩展了Button.如果背景设置为默认背景以外的其他内容(通过调用setBackgroundResource(int id)或setBackgroundDrawable(Drawable d)),我希望边距为0.如果我这样称呼:
public void setBackgroundToDefault() {
backgroundIsDefault = true;
super.setBackgroundResource(android.R.drawable.btn_default);
// Set margins somehow
}
Run Code Online (Sandbox Code Playgroud)
我希望边距重置为-3dp(我已经在这里阅读如何从像素转换为dp,所以一旦我知道如何在px中设置边距,我就可以自己管理转换).但是因为这是在CustomButton类中调用的,所以父级可以从LinearLayout变为TableLayout,而我宁愿不让他得到他的父级并检查该父级的实例.我想,这也将是非常无形的.
另外,在调用时(使用LayoutParams)parentLayout.addView(myCustomButton, newParams),我不知道这是否将它添加到正确的位置(但是没有尝试过),比如一行五的中间按钮.
问题:除了使用LayoutParams之外,还有更简单的方法以编程方式设置单个按钮的边距吗?
编辑:我知道LayoutParams方式,但我想要一个避免处理每个不同容器类型的解决方案:
ViewGroup.LayoutParams p = this.getLayoutParams();
if (p instanceof LinearLayout.LayoutParams) {
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)p;
if (_default) lp.setMargins(mc.oml, mc.omt, mc.omr, mc.omb);
else lp.setMargins(mc.ml, mc.mt, mc.mr, mc.mb);
this.setLayoutParams(lp);
}
else if (p instanceof RelativeLayout.LayoutParams) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)p;
if (_default) lp.setMargins(mc.oml, …Run Code Online (Sandbox Code Playgroud) 我有一堆.keystore文件,需要找到一个具有特定CN和别名的文件.有没有办法用keytool,jarsigner或其他工具做到这一点?我找到了一种检查特定密钥库是否用于签署特定apk的方法,但我还需要在每个文件中获取别名和证书名称.
我的应用在用户首次运行应用时显示了注册活动,如下所示:
因此,当用户点击每个屏幕上的按钮时,活动将以完全相同的顺序相互启动.
当用户从活动#2转到#3时,是否可以完全从历史堆栈中删除#1和#2?我喜欢它,以便如果用户在#3,并点击后退按钮,他们只是转到主屏幕,而不是回到启动画面.
我想我可以用任务来完成这个任务(即在#3上开始一个新任务)但是想看看是否有更简单的方法,
谢谢
当我尝试使用与前一个版本具有相同签名的新版本更新我的applcation时,显示上述错误.
我错过了什么?
尝试在我的项目中使用最新的appcompat-v7支持库时,出现以下错误:
/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
android gradle xamarin.android android-support-library android-5.0-lollipop