我有一个回收站视图,可以在除三星以外的所有设备上完美运行.在三星,我明白了
java.lang.IndexOutOfBoundsException:检测到不一致.视图持有者适配器positionViewHolder无效
当我用另一个活动的回收者视图回到片段时.
适配器代码:
public class FeedRecyclerAdapter extends RecyclerView.Adapter<FeedRecyclerAdapter.MovieViewHolder> {
public static final String getUserPhoto = APIConstants.BASE_URL + APIConstants.PICTURE_PATH_SMALL;
Movie[] mMovies = null;
Context mContext = null;
Activity mActivity = null;
LinearLayoutManager mManager = null;
private Bus uiBus = null;
int mCountOfLikes = 0;
//Constructor
public FeedRecyclerAdapter(Movie[] movies, Context context, Activity activity,
LinearLayoutManager manager) {
mContext = context;
mActivity = activity;
mMovies = movies;
mManager = manager;
uiBus = BusProvider.getUIBusInstance();
}
public void setMoviesAndNotify(Movie[] movies, boolean movieIgnored) {
mMovies = …Run Code Online (Sandbox Code Playgroud) 请帮助我将 Dagger 2 连接到 Kotlin。\n我的应用程序构建 gradle:
\n\napply plugin: \'com.android.application\'\napply plugin: \'kotlin-android\'\napply plugin: \'kotlin-android-extensions\'\napply plugin: \'io.fabric\'\napply plugin: \'kotlin-kapt\'\n\nandroid {\n compileSdkVersion 28\n defaultConfig {\n applicationId "mobile.socialboards.com"\n minSdkVersion 21\n targetSdkVersion 28\n versionCode 19\n versionName \'1.0\'\n testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"\n }\n buildTypes {\n release {\n minifyEnabled false\n proguardFiles getDefaultProguardFile(\'proguard-android.txt\'), \'proguard-rules.pro\'\n }\n debug {\n minifyEnabled false\n }\n }\n configurations {\n cleanedAnnotations\n compile.exclude group: \'org.jetbrains\' , module:\'annotations\'\n }\n productFlavors {}\n compileOptions {\n sourceCompatibility JavaVersion.VERSION_1_8\n targetCompatibility JavaVersion.VERSION_1_8\n }\n kotlinOptions {\n jvmTarget = \'1.8\'\n freeCompilerArgs = [\'-Xjvm-default=enable\']\n }\n lintOptions …Run Code Online (Sandbox Code Playgroud) 我有以下清单代码:
<activity
android:name=".InterceptorActivity"
android:launchMode="singleTask"
android:parentActivityName=".HomeActivity"
tools:ignore="UnusedAttribute"
android:theme="@style/Theme.Startup"
android:exported="true">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https"/>
<data android:scheme="http"/>
<data android:host="www.mysite.com"/>
<data android:pathPrefix="/myPage"/>
<data android:pathPrefix="/myFavourites"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
assetlinks.json 看起来没问题并且上传正确。但所有应用程序链接仍然仅在浏览器中打开,我看到该应用程序支持该链接,但未选中。
另外命令“adb shell pm get-app-links”com.myapp.android”返回
com.myapp.android:
ID: 893......
Signatures: [13:03....DA]
Domain verification state:
www.myapp.com: legacy_failure
Run Code Online (Sandbox Code Playgroud)
为什么?请帮忙。
如何获取当前网络类型?我找到了解决方案:
val info = connectivityManager.activeNetworkInfo
if (info == null || !info.isConnected()) return "-" // not connected
if (info.getType() == ConnectivityManager.TYPE_WIFI) return "WIFI"
if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
val networkType: Int = info.getSubtype()
return when (networkType) {
TelephonyManager.NETWORK_TYPE_GPRS,
TelephonyManager.NETWORK_TYPE_EDGE,
TelephonyManager.NETWORK_TYPE_CDMA,
TelephonyManager.NETWORK_TYPE_1xRTT,
TelephonyManager.NETWORK_TYPE_IDEN,
TelephonyManager.NETWORK_TYPE_GSM -> "2G"
TelephonyManager.NETWORK_TYPE_UMTS,
TelephonyManager.NETWORK_TYPE_EVDO_0,
TelephonyManager.NETWORK_TYPE_EVDO_A,
TelephonyManager.NETWORK_TYPE_HSDPA,
TelephonyManager.NETWORK_TYPE_HSUPA,
TelephonyManager.NETWORK_TYPE_HSPA,
TelephonyManager.NETWORK_TYPE_EVDO_B,
TelephonyManager.NETWORK_TYPE_EHRPD,
TelephonyManager.NETWORK_TYPE_HSPAP,
TelephonyManager.NETWORK_TYPE_TD_SCDMA -> "3G"
TelephonyManager.NETWORK_TYPE_LTE,
TelephonyManager.NETWORK_TYPE_IWLAN, 19 -> "4G"
TelephonyManager.NETWORK_TYPE_NR -> "5G"
else -> "?"
}
}
return "?"
Run Code Online (Sandbox Code Playgroud)
请帮忙!
当我添加时,implementation 'com.google.firebase:firebase-perf-ktx:19.1.0'我无法启动浓缩咖啡仪器测试(“应用程序”方案构建正常)。当我尝试开始 Espresso 测试时,我有
Test running failed: Process crashed.
java.lang.NoSuchMethodError: No static method registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V in class Lcom/google/protobuf/GeneratedMessageLite
Run Code Online (Sandbox Code Playgroud)
但如果我删除implementation 'com.google.firebase:firebase-perf-ktx:19.1.0'一切正常。如何保留 Firebase 性能库和 Espresso Instrumented 测试?
如何从android google heatmap中删除边框颜色?我正在使用此代码绘制:
fun drawPolygons(polygons: Array<NetworkMapPolygonModel>, scale: Float) {
map?.let { map ->
val points = ArrayList<WeightedLatLng>()
polygons.forEach {
val intensity = ((it.signalStrength - 12) * -1).toDouble()
points.add(WeightedLatLng(
LatLng(it.aLatitude, it.aLongitude), intensity
))
}
val radius = 40
val provider = HeatmapTileProvider.Builder()
.weightedData(points)
.radius(radius)
.maxIntensity(48.0)
.build()
map.addTileOverlay(TileOverlayOptions().tileProvider(provider))
}
}
Run Code Online (Sandbox Code Playgroud)
但是谷歌地图给我画了这张地图:
我想删除外部绿色边框(屏幕截图中的红色方块)。但找不到如何做到这一点。请帮忙!
我正在使用 Kotlin 进行 Android 开发。有趣的问题。在 Java 中,将 Context 保存在静态字段中会导致内存泄漏。但如果我将上下文存储在 Kotlin 伴生对象中,Android Studio 不会说这是内存泄漏。这意味着在Java字节码中同伴对象不是静态代码?例如:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
appContext = applicationContext
}
companion object {
lateinit var appContext: Context
}
}
Run Code Online (Sandbox Code Playgroud)
这里没有内存泄漏吗?感谢您的回答:)
android ×7
kotlin ×2
android-12 ×1
applinks ×1
dagger ×1
firebase ×1
google-maps ×1
heatmap ×1
memory-leaks ×1
textview ×1