小编Cha*_*har的帖子

如何从android中的url获取位图?

我有一个uri喜欢哪个有图像

file:///mnt/...............
Run Code Online (Sandbox Code Playgroud)

如何使用这个uri来获取图像,但它返回null,请告诉我我错在哪里.

Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath());
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
Run Code Online (Sandbox Code Playgroud)

android

39
推荐指数
2
解决办法
10万
查看次数

为什么logcat没有显示任何内容?

我正在使用Eclipse classic来开发我的Android应用程序.但是我无法在logcat中看到任何消息.直到昨天它显示了每条消息,但现在它没有显示任何内容.我写了很多og日志语句来跟踪我的程序,但由于这个原因,我无法追踪.

谁能说出问题出在哪里?谢谢...

android logcat

37
推荐指数
7
解决办法
8万
查看次数

为什么指针声明中需要数据类型?

据我所知的数据类型,在声明变量时,我们需要声明其数据类型,它告诉编译器相应地保留内存中的字节数.

但是在指针的情况下,我们知道它们的大小总是2个字节(在Turbo编译器中)总是它所指向的变量数据类型无关.

我的问题是,如果指针总是占用2个字节,那么在声明它们时需要提一下数据类型吗?或者我对指针的理解是错误的?

c c++ pointers

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

如果没有文本,则在EditText中看不到光标

我有一个EditText声明如下.

<EditText 
    android:layout_margin="2dip"
    android:singleLine="true"
    android:lines="1"
    android:maxLines="1"
    android:cursorVisible="true"
    android:textCursorDrawable="@drawable/Black"
    android:textColor="@color/black"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:background="@android:drawable/editbox_background"
/>
Run Code Online (Sandbox Code Playgroud)

但是在获得焦点时它不会显示光标.当我开始输入时,它显示第一个索引的光标.我希望即使在空的edittext中也能显示光标.

我已经尝试setSelection(0)但没有发生任何事情.请帮帮我,我该怎么办?

android android-edittext

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

WorkManager - SystemForegroundService:Context.startForegroundService()然后没有调用Service.startForeground()

为了从前台服务获取位置,我们最近将 WorkManager 迁移为使用 ForegroundService。我们遵循以下文件来实现这一目标:

https://developer.android.com/topic/libraries/architecture/workmanager/advanced/long-running

以下是变化:

class ... : Worker(appContext, params) {
    val forgroundInfo: ForegroundInfo? = null
        get() {
            val notification = NotificationUtils.getNotificationBuilder(appContext, ...)
                .setContentTitle(...)
                .setContentText(...)
                .setStyle(Notification.BigTextStyle().bigText(...))
                .setSmallIcon(...)
                .setLargeIcon(...)
                .setOngoing(true)
                .build()

            return if (Utils.isAndroid10OrAbove()) {
                ForegroundInfo(
                    FOREGROUND_NOTIFICATION_ID,
                    notification,
                    FOREGROUND_SERVICE_TYPE_LOCATION
                )
            } else {
                ForegroundInfo(FOREGROUND_NOTIFICATION_ID, notification)
            }
        }

    override fun doWork(): Result {
        forgroundInfo?.let { setForegroundAsync(it) }
        
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

并在 AndroidManifest.xml 中

<service
        android:name="androidx.work.impl.foreground.SystemForegroundService"
        android:foregroundServiceType="location"
        tools:node="merge" />
Run Code Online (Sandbox Code Playgroud)

发布此版本后,我们的应用程序 crashlytics 仪表板充满了以下崩溃:

Fatal Exception: android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{efecaf7 …
Run Code Online (Sandbox Code Playgroud)

android foreground-service android-workmanager

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

具有空视图的FirebaseRecyclerAdapter

我知道有很多方法可以为RecyclerView提供一个空视图.但我的问题是针对FirebaseRecyclerView.

我的布局是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
    android:id="@+id/feed_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

<ProgressBar
    android:id="@+id/feed_loading"
    style="?android:attr/progressBarStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:visibility="gone"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

所以我在RecyclerView填充其项目之前显示正在加载ProgressBar.现在如果服务器没有任何项目怎么办?在这种情况下,我的RecyclerView始终为空,我的Loading ProgressBar始终对用户可见.

因此,我希望显示一些空布局,而不是无限期地显示ProgressBar.例如"找不到数据"或类似的消息.

最终结果应该是:ProgressBar应该显示,直到数据加载到RecyclerView,一旦数据加载,ProgressBar应该是不可见的.但是如果服务器中没有数据,则应显示一些空布局而不是ProgressBar.

在普通的RecyclerView中,我们有一个数据集(某些ArrayList等),如果它是空的,那么我们可以显示那个空布局.但是对于FirebaseRecyclerAdapter,我在我的Activity或Context中没有Snapshot的引用.我也没有任何回调告诉我服务器中没有数据.

任何解决方法都会有很大帮助.

android firebase android-recyclerview firebase-realtime-database firebaseui

16
推荐指数
2
解决办法
5635
查看次数

无法解析库模块中的Kotlin Android Extension布局

我有我的buyer,seller模块和common模块.两个buyerseller模块中使用的布局很少放在common模块中.

common -> layout_toolbar.xml
buyer -> activity_sell.xml ->

<LinearLayout>
    <include layout="@layout/layout_toolbar" /> <!-- layout_toolbar.xml is from common module -->
</LinearLayout>

seller -> activity_buy.xml ->

<RelativeLayout>
    <include layout="@layout/layout_toolbar" /> <!-- layout_toolbar.xml is from common module -->
</RelativeLayout>

buyer -> BuyActivity.kt
toolbar.title = "Buy"

seller -> SellActivity.kt
toolbar.title = "Sell"
Run Code Online (Sandbox Code Playgroud)

在IDE中一切正常

  1. 我的布局预览通过在IDE的布局预览中解析include标记和膨胀来正确显示.
  2. 我的kotlin文件也正确地解析了工具栏引用,并没有显示任何问题.

但每当我尝试构建应用程序时,它会给我编译错误:

Unresolved reference: toolbar <-- Id of the toolbar inside layout_toolbar.xml
Run Code Online (Sandbox Code Playgroud)

如果IDE可以正确解析依赖关系,为什么不能构建gradle?有什么我做错了吗?

请注意,common模块与implementation其他两个模块一样添加.但我尝试 …

android gradle kotlin kotlin-android-extensions

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

Java中对NaN的困惑

int i = 0, j = 0;
double nan1 = (double)0/0;
double nan2 = (double)0/0;
double nan3 = (double)i/j;
System.out.println(Double.doubleToRawLongBits(nan1) == Double.doubleToRawLongBits(nan2));
System.out.println(Double.doubleToRawLongBits(nan1) == Double.doubleToRawLongBits((double)0/0));
System.out.println(Double.doubleToRawLongBits(nan3) == Double.doubleToRawLongBits(nan2));
Run Code Online (Sandbox Code Playgroud)

输出:

true
true
false
Run Code Online (Sandbox Code Playgroud)

请帮助我输出true前两个和false最后一个的输出.请告诉我Double.doubleToRawLongBits()方法的实际工作是什么.

java floating-point double nan

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

Android - Firebase离线最佳做法

我坚持理解使Firebase应用程序脱机的概念.根据文档,我们需要调用:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)

但是我们应该在哪里打电话呢?应该在应用程序的每个活动中使用它吗?因为,当我在我的Application类onCreate()方法中使用它时,我的应用程序不断崩溃.

那么,为了让我们的应用离线,我们应该遵循的最佳做法是什么.

另一个疑问是上述和之间的区别 DatabaseReference.keppSynced(true);

android firebase firebase-realtime-database

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

应用程序未关闭此处打开的游标或数据库对象:

我的代码是:

public class EventDataSQLHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "my.db";
}

public class Test extends Activity {
    EventDataSQLHelper eventsData;

    @Override
    protected void onDestroy() {
        System.out.println("onDestroy");

        close();
        if (db!=null){

        db.close();

    }
    super.onDestroy();
}




public void close() {
    eventsData.close();
}
Run Code Online (Sandbox Code Playgroud)

我在这里关闭了数据库..在我的所有活动中除了它的工作(没有显示异常)..这里当我按下此测试活动的后退按钮时,抛出以下异常

02-14 15:59:34.642: ERROR/Database(535): close() was never explicitly called on database '/data/data/com.tesy.connect/databases/test.db' 
02-14 15:59:34.642: ERROR/Database(535): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
02-14 15:59:34.642: ERROR/Database(535):     at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810)
02-14 15:59:34.642: ERROR/Database(535):     at …
Run Code Online (Sandbox Code Playgroud)

sqlite android cursor

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