Tag: 安卓

Kotlin为Android和静态最终的内部类

我试图在Kotlin上重写我的Android应用程序,并且在转换ContentProvider契约类时遇到了问题。 所以我有简单的合同类(默认的东西,如内容类型和内容uris被忽略): public final class Contract { public static final class Contacts { public static final String NAME = "Name" public static final String BIRTH = "Birth" public static final String IMAGE = "Image" } } 如果我理解正确,在Kotlin我们没有静态成员。 相反,我们有“伴侣对象”。 所以转换成Kotlin后,我有这样的代码: object BirthdayContract { class Contacts : BaseColumns { companion object { val NAME = "Name" val […]

Kotlin的可玩性和LiveData

我想用Kotlin使用LiveData,并且值不应该为null。 你怎么处理这个? 也许是一个LiveData的包装? 在这里寻找好的模式..举个例子: class NetworkDefinitionProvider : MutableLiveData<NetworkDefinition>() { val allDefinitions = mutableListOf(RinkebyNetworkDefinition(), MainnetNetworkDefinition(), RopstenNetworkDefinition()) init { value = allDefinitions.first() } fun setCurrent(value: NetworkDefinition) { setValue(value) } } 我知道在访问时价值不会是空的 – 但我总是要检查null或者有这些丑陋的东西。

通用Kotlin通配符为参数

我有一个抽象的类使用像下面的听api回调。 ApiRs是每个API响应对象从中继承的父对象 abstract class ApiCallback<in T : ApiRs> { open fun onSucceed(apiRsModel: T) {} open fun onFailed(code: Int, message: String) { } } 而且我还写了一个函数,在请求api之前检查网络状态,如果网络没有连接,则会触发onFailed fun isNetworkAvailable(apiCallback: ApiCallback<ApiRs>?, context: Context): Boolean{ val connectivityManager = context .getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val networkInfo = connectivityManager.activeNetworkInfo // device network unreachable if (networkInfo == null || !networkInfo.isConnected) { // callback with […]

Kotlin的Android内容提供商

大家! 我在Android中创建了一个练习Kotlin的应用程序。 我创建一个这样的提供者: class TestProvider : ContentProvider() { companion object { val sUriMatcher = UriMatcher(UriMatcher.NO_MATCH) val MATCH_WITH_TEST = 0 init { sUriMatcher.addURI("$APPLICATION_ID.provider", TestEntity.TABLE_NAME, MATCH_WITH_TEST) } } var mDatabaseHelper: LocalSQLiteHelper? = null override fun onCreate(): Boolean { mDatabaseHelper = LocalSQLiteHelper(context) return true } override fun insert(uri: Uri?, values: ContentValues?): Uri? { if (mDatabaseHelper != null && […]

SugarORM + Kotlin:Unresovled参考“listAll”

我正在尝试为Android开发组合使用华丽的Kotlin和SugarORM,并将我的模型设置为这样: import com.orm.SugarRecord public class Contact : SugarRecord<Contact>() { var name : String = "" var phoneNumber : String = "" var info : String? = null } 当然我也改变了AndroidManifest.xml : <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" tools:replace="android:icon" android:name="com.orm.SugarApp"> <meta-data android:name="DATABASE" android:value="database.db" /> <meta-data android:name="VERSION" android:value="1" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="/* same as package […]

Kotlin – 在Android中转换Singleton DatabaseController的最佳方法

我正在从“Kotlin in Action”学习Kotlin,并且正在慢慢将Android应用程序代码转换为它。 但是我在转换下面的课程时发现了一些问题。 public class DatabaseController { private static DatabaseController sDatabaseController; private SQLiteDatabase mDatabase; private DatabaseController(Context context) { mDatabase = new SQLiteOpenHelperImpl(context.getApplicationContext()) .getWritableDatabase(); } public static DatabaseController getDatabaseController(Context context) { if (sDatabaseController == null) { sDatabaseController = new DatabaseController(context); } return sDatabaseController; } public void addElement(Element element) { if (element != null) { ContentValues […]

Kotlin和Android TextWatcher具有CharSequence / String替换功能

我只是在我的项目上玩Kotlin,我来到奇怪的问题…当试图转换自定义EditText Android工作室停止响应。 当我试图转换它的一部分,它转换这段代码时停止响应: private TextWatcher editor = new TextWatcher() { long newMicro = 0; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { s = s.toString().replace(".", "") .replace(",", "") .replace("$", ""); try { newMicro = Long.parseLong(s.toString()); } catch (Exception […]

在Android Studio中将Java文件传输到Kotlin中

随着Android 3.0的发布,我注意到它现在支持Kotlin。 我也看到有一个Java to Kotlin“转换器”,如果你愿意的话。 我在Android Studio上有一个中等大小的项目,我一直在使用Java,我想知道把所有东西都转换成Kotlin是明智的。 Kotlin值得把我所有的文件转换成语言吗?

Kotlin + Dagger2 @模块提供者方法用法中的注释

我在Kotlin中使用Dagger 2 @Named注解时出现了一个问题,那就是阻止我将Dagger图形移植到Kotlin。 当我需要在Dagger模块方法中注入一个@Named参数时,会出现问题。 在这种情况下,我不是通过构造函数或字段注入它。 我已经尝试了所有Kotlin注释使用网站的目标,并没有一个似乎在方法参数中工作。 请,任何解决方案将非常感激。 下面是转换成Kotlin的java代码部分不会编译: @Module public final class MyModule { (…) @Provides @Singleton LoginStore provideLoginStore(@Named("main_dao_session") DaoSession mainDaoSession, @Named("demo_dao_session") DaoSession demoDaoSession) { return new LoginStoreImpl(mainDaoSession, demoDaoSession); } (…) }

Kotlin与地图(标记不显示)

你好,我试图在kotlin中实现Google Maps ,但在这些代码中我的getMapAsync没有得到调用,地图显示完美,但标记不显示 var mapFragment : SupportMapFragment?=null mapFragment= fragmentManager.findFragmentById(R.id.map) as SupportMapFragment? mapFragment?.getMapAsync { val sydney = LatLng(22.30, 73.20) mMap!!.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney")) mMap!!.moveCamera(CameraUpdateFactory.newLatLng(sydney)) Toast.makeText(activity,"dfgdg",Toast.LENGTH_LONG).show() }