我正在使用Firebase-backend用于我的android应用程序.我想为我的聊天建立一个用户在线系统.为此,我采用了Firebase指南中的模式
final Firebase myConnectionsRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/users/joe/connections");
// stores the timestamp of my last disconnect (the last time I was seen online)
final Firebase lastOnlineRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/users/joe/lastOnline");
final Firebase connectedRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/.info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
// add this device to my connections list
// this value could contain info about the device or a timestamp too
Firebase con = myConnectionsRef.push();
con.setValue(Boolean.TRUE);
// when this device …
Run Code Online (Sandbox Code Playgroud) 同事!我的问题是:我有一个配置活动的应用程序小部件(最小的SDK - 2.1),它工作正常但有时它开始工作得更慢.我记录并发现在更新我的App Widget方法之前onUpdate收到了一个App Widget ID数组
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.d("onUpdate", Arrays.toString(appWidgetIds));
Run Code Online (Sandbox Code Playgroud)
但事实是,我在主屏幕上只有两个App Widget实例,但是数组的长度超过2(2):4,有时是5或6.它怎么可能如此?我的AppWidget更新缓慢的原因是我必须为所有id调用onUpdate-method,但是有些ID(正如一个人说"幻影小部件")不真实和正确.
也许,有人遇到过这样的问题并且会帮助我弄清楚如何只处理真正的app widget ID.
PS卸载然后重新安装应用程序小部件(之后所有鬼小部件都消失了) - 不是正确解决我的问题.我想以编程方式控制幽灵和真实小部件.
有人知道如何解决这个错误吗?
在主屏幕上添加appwidget的新实例时,我在某些设备上遇到了奇怪的行为.
我有配置活动的AppWidget应用程序.正如在appwidget的教程更新中所说,我必须自己做.
public static void updateWidgetAndSendIntent (Activity activity, int mAppWidgetId, boolean isUpdate) {
updateWidgets(activity);
if (!isUpdate) {
Intent resultIntent = new Intent();
resultIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
activity.setResult(Activity.RESULT_OK, resultIntent);
activity.finish();
}
}
public static void updateWidgets(Context context) {
new ManagerUpdateWidget(context).updateAllWidgetInstances();
}
Run Code Online (Sandbox Code Playgroud)
ManagerUpdateWidget.java
public void updateAllWidgetInstances() {
Bitmap widget = getCustomView(context);
for (int widgetId : appWidgetIds) {
updateCurrentInstance(widgetId, widget);
}
}
Run Code Online (Sandbox Code Playgroud)
事实上,搭载Android 4.4.2的三星Galaxy Note 2(GT-N7100)一切都还可以,但是在搭载Android 5.0的三星Galaxy Note 3(SM-N900)上我有"幻影"appwidget,而不是真正的appawidget on主屏幕,但"幽灵",当你在屏幕上看不到appwidget但在你的应用程序appwidget内存在ID和定期更新.我已经在genymotion模拟器(Android 4.3和5.0)上测试了我的应用程序,但一切都很好.
请建议我如何解决这个奇怪的错误.
我在recyclerview中显示项目并使用数据绑定.在xml布局中我有这样的观点:
<include
android:visibility="@{viewmodel.expandable ? View.VISIBLE : View.GONE}"
bind:viewmodel="@{viewmodel}"
layout="@layout/full_station_layout"/>
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我有一个问题:当recyclerview初始化并将项目绑定到视图时,此布局在屏幕上闪烁一次,尽管初始值viewmodel.expandable为false.所以,我决定暂时隐藏这个布局并尝试在xml中使用default -parameter,如下所示:
<include
android:visibility="@{viewmodel.expandable ? View.VISIBLE : View.GONE, default=View.GONE}"
bind:viewmodel="@{viewmodel}"
layout="@layout/full_station_layout"/>
Run Code Online (Sandbox Code Playgroud)
但出了点问题:
error: 'View' is incompatible with attribute android:visibility (attr) enum [gone=2, invisible=1, visible=0].
Run Code Online (Sandbox Code Playgroud)
所以,我还是不正确地使用此参数或谷歌的XML数据绑定规则中移除这个关键字(我见过的例子使用的默认 -keyword在谷歌开发的XML,但现在我不能)
我正在使用 Room 库,有数据库站,并希望执行查询以获取带/不带过滤器的站。
更新。我有 DAO,我想在我的数组 (groupIds) 为空或为空时获取所有记录,如果我在列表中有一个数组元素,则获取过滤列表。
@Query("SELECT * FROM $STATIONS_TABLE_NAME WHERE ((:groupIds) IS NULL OR $GROUP_ID IN(:groupIds))
fun getStationsWithFilter(groupIds: IntArray?): Flowable<List<DbStation>>
Run Code Online (Sandbox Code Playgroud)
此刻我遇到了一个问题
08-29 16:09:00.139 9508-9508/->BaseActivity: showError: exception - near ",": syntax error (code 1): , while compiling: SELECT * FROM Stations WHERE ((?,?,?,?,?,?,?,?,?,?) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
所以,
1)我可以检查空传递值来查询和动态chabge SQL查询吗?
2)如果是 - 我有什么语法问题?
检测 AppWidget 上的 OnTouch。如果可以的话?你好!我正在尝试为 Android 2.1 创建我的第一个 AppWidget,其中客户端可能有机会在我的自定义视图上选择一个项目。我将为其创建一个自定义视图和一个滑块,客户可以通过将滑块拉到自定义视图上来进行选择。为此,我想检测AppWidget的onTouch(以确定X、Y坐标),有办法做到这一点吗?
我看到了可以在 AppWidget 中使用的有效小部件列表:
然而它们不符合我的需要。我用谷歌搜索过这个,但没有找到任何可以帮助我的东西。有没有办法在 AppWidget 中检测 OnTouch?也许这需要我拥有更新的 API 版本。
我想在这样的规则上格式化输入的字符串:替换除字符串中第一个位置之外的所有非数字符号:它应该只是数字或符号'+'.
我使用正则表达式功能
private static final String REGEXP_NOT_DIGITS = "[^\\+0-9]";
String result = sample.replaceAll(REGEXP_NOT_DIGITS, "");
Run Code Online (Sandbox Code Playgroud)
但是这个替换的结果是带有数字的字符串和任何位置的"+"符号.请帮助我澄清我的条件,我将替换所有'+'符号,除了行中只有1个位置.
编辑.现在的输出是:
sample [0] sample = 0123456789; 结果= 0123456789预计:0123456789
样品[1]样品= + 380 + 380 + 380 +; 结果= + 380 + 380 + 380 +预期:+380380380
样本[2]样本= dd0 11 22 33 44 55; 结果= 01122334455预计:01122334455
sample [3] sample = + 380-456(789); 结果= +380456789预期:+380456789
样本[4]样本= d3 + 580 456 789; 结果= 3 + 580456789预计:3580456789
sample [5] sample = +380456789; 结果= +380456789预期:+380456789
一切都好,除了在字符串中有符号'+'
我遇到了一个我不知道如何解决的问题.如果可以,请你帮助我.在我的应用程序中,我必须创建一个自定义视图扩展视图.在这个视图中,我应该绘制很多矩形,然后通过canvas.drawRect或canvas.drawRoundRect创建它们.很明显.但我想创建这些矩形的复合设计(有渐变,角落,填充等),我想用XML执行这些设置(渐变,角落,填充等).我该怎么做?问题是我在XML中确定形状我只能将此drawable用作背景,但是当我绘制一个矩形时,我无法为矩形设置背景.也许还有另一种方法可以解决这个问题.我可以使用XML形状对象不仅可以设置为背景,还可以设置具有x,y坐标和宽度,高度的视图对象?
编辑:我可以绘制矩形:
canvas.drawRect(x1, y1, x2, y2, paint);
Run Code Online (Sandbox Code Playgroud)
但我在XML中有矩形设置,如下所示:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- Specify a gradient for the background -->
<gradient
android:angle="90"
android:startColor="#55000066"
android:centerColor="#FFFFFF"
android:endColor="#55000066" />
<!-- Specify a dark blue border -->
<stroke
android:width="2dp"
android:color="#000066" />
<!-- Specify the margins that all content inside the drawable must adhere to -->
<padding
android:left="5dp"
android:right="5dp"
android:top="5dp"
android:bottom="5dp" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我想将此设置应用于我的矩形.怎么样?
在实施Facebook共享信息时,我遇到了这样一个奇怪的错误.我做了所有阶段,因为它们在Facebook教程Facebook教程中描述- 分享信息
但是当我试图创建WebDialog.feedDialog的例子时
private void publishFeedDialog() {
Bundle params = new Bundle();
params.putString("name", getString(R.string.name_fb));
params.putString("description", getString(R.string.description_fb));
params.putString("link", getString(R.string.share_link_fb));
params.putString("picture", getString(R.string.pictute_url_fb));
Session session = Session.getActiveSession();
Log.i(TAG, "session = " + session + " isOpen = " + session.isOpened() + " isClosed = " + session.isClosed());
WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(this, Session.getActiveSession(), params))
.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Bundle values, FacebookException error) {
if (error == null) {
// When the story is posted, echo the …
Run Code Online (Sandbox Code Playgroud)android ×8
android-room ×1
facebook ×1
fbwebdialogs ×1
firebase ×1
instance ×1
java ×1
regex ×1
replaceall ×1
session ×1
shape ×1
sql ×1
touch-event ×1
xml ×1