Tag: 安卓

从Kotlin的另一个类访问静态扩展函数?

假设我们有以下扩展function: class Helper { companion object { fun Int.plus(value: String) = Integer.valueOf(value).plus(this) } } 如何从另一个类的Helper类访问plus扩展function。 有没有一种方法可以让我们做这样的事情: class OtherClass { fun someMethod() { val eight = 7.Helper.Companion.plus(“1”) } }

Kotlin`这个`不会在inheritance类中返回正确的实例

我有两个class。 一个是另一个的父母。 我正在实例化Foo中的HashMap的obect,并尝试访问该对象,但在类Bar中,我得到的presenter as Map不presenter as HashMap presenter as Map的引用,因此我的HashMap方法调用都没有工作。 我已经阅读了文档,并试图在init{…}里面指定this.presenter ,就像在Java中一样,但是我仍然无法从子类的内部访问HashMap 。 open class Foo { var presenter = Map init { presenter = HashMap } } open class Bar : Foo() { //this is trying to call .put on the Map interface, so I get an error presenter.put(someData) }

我怎样才能禁用Kotlin的onTouch

我有一个包含CircleShape的片段class FlipFragment : Fragment() 。 当我按下CircleShape时,我调用一些animation来改变它的资源的方法。 我需要这样做,当animation正在工作 – onTouch被禁用。 我怎么能做到这一点? class FlipFragment : Fragment() { private var layout = R.layout.view_flip private lateinit var CircleShape: ImageView override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { var view: View = inflater!!.inflate(layout, container, false) CircleShape = view.findViewById(R.id.fShapeView) Log.i(“TAG”, CircleShape.isClickable.toString()) CircleShape.setOnClickLiastener { mechanics() } return view } private […]

如何在Kotlin中设置非内联OnClickListener?

我想将一个View.OnClickListener附加到Button 。 我不想让OnClickListener成为内联匿名函数定义。 相反,我想在onCreateView()函数的范围之外定义它。 在Java中,我会这样做,如下所示: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_layout, container, false); View my_btn = view.findViewById(R.id.my_btn); my_btn.setOnClickListener(handleButtonClick); return view; } View.OnClickListener handleButtonClick = new View.OnClickListener() { @Override public void onClick(View v) { Log.d(“my_tag”, “click!”) } } 其他答案似乎表明下面的工作,但它不为我编译: override fun onCreateView(name: String?, context: Context?, attrs: AttributeSet?): View […]

如何在Kotlin中的导航抽屉活动中添加OnFragmentInteractionListener?

我试图做一个应用程序使用导航抽屉活动但我需要使用碎片当我是添加片段,并试图切换片段之间的崩溃我不是为什么它崩溃事务抛出一个错误: Process: com.a3.aakap.ftrial, PID: 6958 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.a3.aakap.ftrial/com.a3.aakap.ftrial.MainActivity}: java.lang.RuntimeException: com.a3.aakap.ftrial.MainActivity@9483ac4 must implement OnFragmentInteractionListener 而我无法修复它,因为我是新的在这里这是我的MainAcivity.kt文件: class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) fab.setOnClickListener { view -> Snackbar.make(view, “Replace with your own action”, Snackbar.LENGTH_LONG).setAction(“Action”, null).show() } val toggle = ActionBarDrawerToggle(this, drawer_layout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) drawer_layout.addDrawerListener(toggle) toggle.syncState() nav_view.setNavigationItemSelectedListener(this) […]

Kotlin:如何从另一个课程访问领域?

package example class Apple { val APPLE_SIZE_KEY: String = “APPLE_SIZE_KEY” } 类: package example class Store { fun buy() { val SIZE = Apple.APPLE_SIZE_KEY } } 错误: ‘APPLE_SIZE_KEY’在’example.Apple’中有私人访问权限 但官方文档描述,如果我们不指定任何可见性修饰符,默认情况下使用public 。 我的第二个问题是: 为什么会出现上述错误?

如何在headerLayout android kotlin中查找视图

我有NavagationView在main_activity和NavagationView有一个headerLayout main_activity nav_header_main `问题是如何在主要活动中find头像图片我试图avatar.setOnClickListener {}但抛出NulPointerexception,我也导入这个导入kotlinx.android.synthetic.main.nav_header_main。

在Android(Kotlin)中处理Singletons清理的建议方法是什么?

我一直在我的Android应用程序关闭时通过回车键并重新进入一些奇怪的问题,并发现他们正在发生,因为2个单身类中的variables我永远不会重新初始化(问题不会发生,如果手动杀死应用程序来自任务管理器)。 即使我明确地调用完onBackPressed的Main活动,我可以看到onDestroy被调用后,单例仍然在内存中。 我决定在破坏我的Activity之前对这些Singleton进行手动清理,问题是使用Kotlin我需要使所有成员variables为空(?),并且记住将null分配给每个variables都是很麻烦的,所以现在我选择像这样处理Singleton的实例化,并在清理的时候使整个实例变为null: class SingletonName { companion object { private var _instance: SingletonName ? = null private var instance: SingletonName ? get() { if (_instance == null) { _instance = SingletonName () } return _instance } set(value) { _instance = value } @JvmStatic fun get(): SingletonName { return instance!! //avoid having to deal with nullable […]

Kotlin:在Activity中使用BroadcastReceiver时未解析的本地类

不时编译项目时,我得到这个错误: Error:java.lang.UnsupportedOperationException: Unresolved local class: com/myproject/activities/BaseActivity$broadcastReceiver$1 at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:44) at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:32) at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:408) at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:483) at org.jetbrains.kotlin.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:101) at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer$typeConstructor$1.invoke(TypeDeserializer.kt:120) at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:124) at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:82) at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:70) at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type$default(TypeDeserializer.kt:62) at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadProperty(MemberDeserializer.kt:67) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeProperties(DeserializedMemberScope.kt:123) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.access$computeProperties(DeserializedMemberScope.kt:35) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$properties$1.invoke(DeserializedMemberScope.kt:61) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$properties$1.invoke(DeserializedMemberScope.kt:35) at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:408) at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:483) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.getContributedVariables(DeserializedMemberScope.kt:137) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.getContributedVariables(DeserializedClassDescriptor.kt:232) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.computeNonDeclaredProperties(DeserializedClassDescriptor.kt:252) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeProperties(DeserializedMemberScope.kt:124) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.access$computeProperties(DeserializedMemberScope.kt:35) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$properties$1.invoke(DeserializedMemberScope.kt:61) at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$properties$1.invoke(DeserializedMemberScope.kt:35) at […]

如何使用kotlin从模型类中检索数据?

我如何从活动类中检索模型类的数据? 这是class级: class Mass( val number: Number, val date: String, val day: String, val reading: Reading ){ }