小编Hel*_*oCW的帖子

我在哪里可以找到android studio中最新的gradle版本?

当我尝试构建项目1时,我收到以下错误.似乎gradle-3.0.0-beta6和gradle-3.0.0-beta9都不可用.

我在哪里可以找到android studio中最新的gradle版本?你能告诉我一个可以列出所有可用gradle版本的URL吗?

Error:Could not find com.android.tools.build:gradle:3.0.0-beta6.
Searched in the following locations:
    file:/E:/Android_Studio_3.1/gradle/m2repository/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.pom
    file:/E:/Android_Studio_3.1/gradle/m2repository/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.jar
    https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.pom
    https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta6/gradle-3.0.0-beta6.jar
Run Code Online (Sandbox Code Playgroud)

项目1

buildscript {
    ext.support_version =  '26.0.0'
    ext.kotlin_version = '1.1.4-3'
    ext.anko_version = '0.10.1'


    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:gradle-3.0.0-beta6'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin

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

在 Android Studio 中搜索文本时如何排除自动生成代码?

我在Android Studio中搜索文本,可以看到图像A

我发现搜索结果包含自动生成代码,例如LayoutHomeBindingImpl

我希望从自动生成代码中排除搜索结果,我该怎么办?

图片A

在此输入图像描述

android intellij-idea android-studio

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

自定义对话框中的复选框控件文本无法在某些Android设备中显示

我使用下面的代码来创建和打开自定义对话框,它在android 4.2.2中运行良好,但是复选框控件的文本无法在android 2.3.6中显示.

我发现复选框控件的文本是黑色的,而androidC 4.2.2中的BackgroundColor对话框是白色的,所以没关系,但是android 2.3.6中的BackgroundColor对话框是黑色的,所以很糟糕.

我能怎么做?

sms_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <CheckBox
        android:id="@+id/chNoDisplayAgain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"        
        android:text="" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

相关的java代码:

 private void DisplayPrompt(final String key,final boolean isClose,String msg){
        LayoutInflater li = LayoutInflater.from(this);
        View promptsView = li.inflate(R.layout.sms_dialog, null);       
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setView(promptsView);

        alertDialogBuilder.setTitle(getString(R.string.TitleWarning));      
        alertDialogBuilder.setMessage(msg); 
        alertDialogBuilder.setCancelable(false);

        final CheckBox myCheckBox=(CheckBox)promptsView.findViewById(R.id.chNoDisplayAgain);
        myCheckBox.setText(getString(R.string.NoDisplayAgain));     

        alertDialogBuilder
            .setPositiveButton(getString(R.string.BtnOK), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                   SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                   if (prefs.contains(key)){                     
                      SharedPreferences.Editor editor =prefs.edit();
                      editor.putBoolean(key, !myCheckBox.isChecked());
                      editor.commit(); …
Run Code Online (Sandbox Code Playgroud)

android

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

我可以在文件夹树中列出所有字符串资源文件吗?

我创建了一个基于免费和专业版的productFlavors项目,并为不同的版本使用不同的字符串资源文件,文件夹构造是cc.png.

如果我在面板中更改Build Variant,则Android选项卡中的值显示两个strings.xml(2),一个位于主文件夹,另一个位于free或pro文件夹,您可以看到aa.png和bb.png.

我希望所有字符串资源文件可以一起显示,它会显示三个string.xml(3),第一个是主文件夹,sencond是免费文件夹,第三个是pro文件夹.我怎样才能做到这一点 ?谢谢!

CC.Png

在此输入图像描述

AA.png

在此输入图像描述

BB.png

在此输入图像描述

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "info.dodata.messagecleanup"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 7
        versionName "1.07"
        archivesBaseName = "MessageCleanup-V" + versionName
    }


    productFlavors {
        free {
            applicationId "info.dodata.messagecleanup"
            buildConfigField "String", "AppName", "\"Message Cleanup\""
        }


        pro {
            applicationId "info.dodata.messagecleanup.pro"
            buildConfigField "String", "AppName", "\"Message Cleanup Pro\""
        }
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile …
Run Code Online (Sandbox Code Playgroud)

android android-studio

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

this@MainActivity 的代码是什么意思?

我是 Kotlin 的初学者,以下代码来自网页,this@MainActivity代码中的参数我看不懂,layoutManager = LinearLayoutManager(this@MainActivity)您能告诉我吗?谢谢!

import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.view.Menu
import android.view.MenuItem
import kotlinx.android.synthetic.main.activity_main.*
import mobi.porquenao.poc.kotlin.R

class MainActivity : BaseActivity() {
    lateinit var listAdapter: MainAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        with (list) {
            setHasFixedSize(true)
            layoutManager = LinearLayoutManager(this@MainActivity)
            listAdapter = MainAdapter()
            adapter = listAdapter
        }
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main, menu)
        return super.onCreateOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        listAdapter.add()
        list.smoothScrollToPosition(0)
        return true
    }

}
Run Code Online (Sandbox Code Playgroud)

android kotlin

5
推荐指数
2
解决办法
2790
查看次数

为什么Kotlin for Android Developers(书)需要再次添加扩展名parseList?

我知道Anko提供了parseSingle,parseOpt和parseList的函数,我不明白为什么Android Developers(该书)的代码需要再次设计扩展parseList.

你可以告诉我吗?谢谢!

https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/data/db/ForecastDb.kt

override fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use {

        val dailyRequest = "${DayForecastTable.CITY_ID} = ? AND ${DayForecastTable.DATE} >= ?"
        val dailyForecast = select(DayForecastTable.NAME)
                .whereSimple(dailyRequest, zipCode.toString(), date.toString())
                .parseList { DayForecast(HashMap(it)) }

}
Run Code Online (Sandbox Code Playgroud)

https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/extensions/DatabaseExtensions.kt

fun <T : Any> SelectQueryBuilder.parseList(parser: (Map<String, Any?>) -> T): List<T> =
        parseList(object : MapRowParser<T> {
            override fun parseRow(columns: Map<String, Any?>): T = parser(columns)
})
Run Code Online (Sandbox Code Playgroud)

android kotlin anko

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

android 中的 PendingIntent.FLAG_UPDATE_CURRENT 和 0 有什么不同?

android 中的 PendingIntent.FLAG_UPDATE_CURRENT 和 0 有什么不同?

var aa=  PendingIntent.getService(mContext, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT)

var bb=  PendingIntent.getService(mContext, 0, myIntent, 0)
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
4789
查看次数

我应该选择哪个视图来使用 Kotlin 预览 Camera 的真实图片?

我希望在我的应用程序中预览Android手机相机的真实图片。

我谷歌的一些资源,似乎有三个观点SurfaceViewcameraviewSurfaceTextureCameraX阿尔法。

貌似SurfaceView是经典的,cameraview是DEPRECATED,CameraX的SurfaceTexture是alpha版,可以看图A

使用 Kotlin 在 Android Studio 3.4.1 中预览 Camera 的真实图片应该选择哪个视图?或者你有更好的方法?

图片A

在此处输入图片说明

android kotlin android-studio

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

如果我使用视图绑定,如何找到 NavController?

通常,我val navController: NavController = findNavController(R.id.nav_host_fragment)在代码 A 中使用来查找 NavController,它基于R.id.nav_host_fragment.

现在我在应用程序中使用视图绑定,就像代码B一样,如果我使用视图绑定,我该如何使用NavController?

顺便说一句,在我看来, R.id.nav_host_fragment视图绑定将不可用,对吧?

代码A

class TasksActivity : AppCompatActivity() { 

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.tasks_act)

        val navController: NavController = findNavController(R.id.nav_host_fragment)
     }
 
}
Run Code Online (Sandbox Code Playgroud)

代码B

class TasksActivity : AppCompatActivity() {
    
    private lateinit var binding: TasksActBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = TasksActBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)       
      
        //val navController: NavController = findNavController(R.id.nav_host_fragment)       
    }

}
Run Code Online (Sandbox Code Playgroud)

任务_act.xml

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".tasks.TasksActivity"
    tools:openDrawer="start">

    <LinearLayout
        android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack

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

为什么状态为“已退款”的订单在 Google 应用内支付系统中显示为“已购买”?

我在我的 Android 应用程序中使用 Google 应用内结算版本 3,我正在基于以下代码测试应用程序的订单模块。

在这种情况下,用户的订单已被 Google Play 退款,但当我运行 时mBilling.initBillingClient(),我发现purchase.purchaseState == Purchase.PurchaseState.PURCHASEDinprivate fun processPurchases已启动。

退款状态为“已购买”的订单似乎已成功,如何修复?

FragmentBuy.kt

class FragmentBuy : Fragment() {
     ...
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        binding = DataBindingUtil.inflate(
            inflater, R.layout.layout_buy, container, false
        )
   
        val mBilling=Billing.getInstance(requireActivity(), getString(R.string.skuRegisterApp)) 
        mBilling.initBillingClient()
        ...       
    }

}
Run Code Online (Sandbox Code Playgroud)

计费.kt

class Billing private constructor (private val mContext: Context, private val purchaseItem :String)
    :PurchasesUpdatedListener, BillingClientStateListener   {

    private lateinit var playStoreBillingClient: BillingClient
    private val mapSkuDetails = mutableMapOf<String,SkuDetails>() …
Run Code Online (Sandbox Code Playgroud)

android in-app-billing in-app

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