小编Ale*_*alo的帖子

Firebase:当onDisconnect事件发生火灾时?

我正在使用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)

android firebase firebase-realtime-database

10
推荐指数
1
解决办法
5564
查看次数

appwidget appWidgetIds的麻烦(小部件的真实和虚幻实例)

同事!我的问题是:我有一个配置活动的应用程序小部件(最小的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卸载然后重新安装应用程序小部件(之后所有鬼小部件都消失了) - 不是正确解决我的问题.我想以编程方式控制幽灵和真实小部件.

有人知道如何解决这个错误吗?

android instance android-widget android-appwidget

9
推荐指数
1
解决办法
2869
查看次数

AppWidget:在某些设备上完成配置活动后,不会显示实例

在主屏幕上添加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)上测试了我的应用程序,但一切都很好.

请建议我如何解决这个奇怪的错误.

android android-appwidget

7
推荐指数
1
解决办法
131
查看次数

Android数据绑定:在xml中设置默认可见性

我在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,但现在我不能)

android android-databinding

7
推荐指数
2
解决办法
3627
查看次数

房间:我可以检查传递值以查询 NULL 吗?

我正在使用 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)如果是 - 我有什么语法问题?

sql android android-room

6
推荐指数
1
解决办法
1996
查看次数

检测 AppWidget 上的 OnTouch。如果可以的话?

检测 AppWidget 上的 OnTouch。如果可以的话?你好!我正在尝试为 Android 2.1 创建我的第一个 AppWidget,其中客户端可能有机会在我的自定义视图上选择一个项目。我将为其创建一个自定义视图和一个滑块,客户可以通过将滑块拉到自定义视图上来进行选择。为此,我想检测AppWidget的onTouch(以确定X、Y坐标),有办法做到这一点吗?

我看到了可以在 AppWidget 中使用的有效小部件列表:

  • 模拟时钟
  • 按钮
  • 天文台表
  • 图像按钮
  • 图像视图
  • 进度条
  • 文本视图
  • 视图翻转器
  • 列表显示
  • 网格视图
  • 堆栈视图
  • 适配器视图翻转器

然而它们不符合我的需要。我用谷歌搜索过这个,但没有找到任何可以帮助我的东西。有没有办法在 AppWidget 中检测 OnTouch?也许这需要我拥有更新的 API 版本。

android ontouchlistener touch-event android-appwidget

5
推荐指数
1
解决办法
2560
查看次数

Java:替换第一个位置上除符号"+"之外的所有非数字符号

我想在这样的规则上格式化输入的字符串:替换除字符串中第一个位置之外的所有非数字符号:它应该只是数字或符号'+'.

我使用正则表达式功能

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

一切都好,除了在字符串中有符号'+'

java regex replaceall

2
推荐指数
1
解决办法
1716
查看次数

在Android中使用XML形状设置绘制矩形

我遇到了一个我不知道如何解决的问题.如果可以,请你帮助我.在我的应用程序中,我必须创建一个自定义视图扩展视图.在这个视图中,我应该绘制很多矩形,然后通过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)

我想将此设置应用于我的矩形.怎么样?

xml android shape drawrectangle

1
推荐指数
1
解决办法
1万
查看次数

Facebook SDK:在创建WebDialog.FeedDialogBu​​ilder时没有"打开"会话状态

在实施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)

session android facebook fbwebdialogs

1
推荐指数
1
解决办法
1756
查看次数