我最近已经注意到Kotlin,并有Java的经验。 在Java中,我们可以使用与父类相同的名称声明该字段。 当我在Kotlin做同样的事情时,它给出name hides member of Super type User错误name hides member of Super type User 。 我在这里错过了什么? 科特林 open class User(protected var name: String) class TwitterUser(var name: String) : User(name) Java的相同概念 public class A { protected String name; } public class B extends A { String name; }
使用“即时运行”运行项目后,我得到了这个exception: java.lang.IllegalAccessError:非法类访问:’com.alla.kotlinexample.MainActivity $覆盖’试图访问’kotlin.jvm.internal.DefaultConstructorMarker’(声明’com.alla.kotlinexample.MainActivity $覆盖’出现在/数据/数据/ com.alla.kotlinexample /文件/即时运行/ DEX-温度/ reload0x0000.dex) 在 com.alla.kotlinexample.MainActivity $ override.onCreate(MainActivity.kt:21) 在 com.alla.kotlinexample.MainActivity $ override.access $ dispatch(MainActivity.kt) 这里是代码: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) val persons: List = listOf(Person(“Person1”), Person(“Person2”, 27)) fab.setOnClickListener { view -> Snackbar.make(view, persons[1].name, Snackbar.LENGTH_LONG) .setAction(“Action”, null).show() } tv_person_name.text = persons.maxBy { it.age ?: […]
我正在和Anko一起玩Kotlin,并试图用它拍摄一张照片,然后在我的测试应用程序中使用下面的Android培训文档作为起点显示结果图像。 http://developer.android.com/training/camera/photobasics.html 使用Anko实现这个function的最好方法是什么? 我试图使用startActivityForResult函数,但我没有任何运气搞清楚如何将图像视图添加到可以使用onActivityResult的结果更新的布局。
我试图使用android室库和Kotlin的紧凑语法指定一个构造函数与默认参数值。 像这样的东西: @Entity class MyEntity(var myString:String = “non-trivial string”) { @PrimaryKey(autoGenerate = true) var myIndex:Int = 0 } 但是我得到这个警告信息: 有多个好的构造函数,Room会选择无参数的构造函数。 您可以使用@Ignore注释来消除不需要的构造函数。 语法允许在这个紧凑的Kotlin风格的构造函数中写入Room的@Ignore注释吗? 我知道我可以做这样的事情来消除这个警告信息,但是它更冗长。 这也使得构造函数arg的默认值显得冗余/无益: @Entity class MyEntity() { @Ignore constructor(myString:String = “non-trivial string”) : this() { this.myString = myString } @PrimaryKey(autoGenerate = true) var myIndex:Int = 0 var myString:String? = null } 我怎样才能宣布一个房间的实体,但仍利用Kotlin的简洁性? 非常感谢你。
我在我的Android应用程序中创建了我的第一个Kotlin类。 通常,为了记录目的,我有一个名字TAG的常量。 我在我的RecyclerView适配器中将其定义为: class MyAdapter(private val dataList: ArrayList): RecyclerView.Adapter() { private val TAG: String? = MyAdapter::class.simpleName . . . class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { fun bindData(){ //some statements } override fun onClick(p0: View?) { //I want to use the above defined TAG here as I would do in Java: // Log.d(TAG, “”); } […]
我有以下两个整数的活动 class ComplexActivity : AppCompatActivity() { var clubs : Int = 0 var diamonds : Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_complex) val fragment = ClubsFragment() val transaction = supportFragmentManager.beginTransaction() transaction.replace(R.id.main_frame, fragment) transaction.commit() } } 当isScored为true时,我想从片段ClubsFragment中更改整数球杆的值 class ClubsFragment : Fragment(), SeekBar.OnSeekBarChangeListener{ private var isScored = false override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, […]
大家好,我正在尝试在Android Studio中制作计算器,因为我是新的Kotlin和Java,所以对我来说很困难。 这里是我的mainActivity xml文件的源代码: 这里是我的Android mainActivity.kt文件 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) okactivity2.setOnClickListener{ val num1 = editText1.text val user1: Int = num1 val num2 = editText2.text val user2: Int = num2 val sum = user1 + user2 editText3.setText(“Answer is $sum”) } } 在这里,我无法将字符串editText1和editText2转换为int,所以我可以设置ediText3作为答案
高阶函数是否有成本? 我可以很容易地解决一些问题,但我不确定它是否会影响性能。 这有什么限制吗?
我正在制作一个应用程序,供个人使用,在单个活动上有多个横幅广告。 我想听所有的广告onAdLoaded()事件。 为此,我必须为每个广告添加AdListener 。 如果我有十个广告,我必须写十次相同的代码吗? 所以,我的问题是,有没有什么办法来减少像onClickListener这样的多个按钮这样的代码? 我已经尝试以按钮的onClickListener相同的方式做到这一点,但它不起作用。 我的代码的一部分: ad1.adListener = object : AdListener() { override fun onAdLoaded() { super.onAdLoaded() incrementCounter() } } ad2.adListener = object : AdListener() { override fun onAdLoaded() { super.onAdLoaded() incrementCounter() } } ad3.adListener = object : AdListener() { override fun onAdLoaded() { super.onAdLoaded() incrementCounter() } } 我必须为所有广告单元重复相同的代码。这使我的代码笨重,这是我的问题。
我想通过variables的方式来完成一个URL,但是当我通过它,并将其添加到我想连接到的URL,它给了我一个错误 override fun onCreate var mparam = intent.getStringExtra(“param”) interface ApiActaPartido { @GET(“My_url”+$mparam) fun getActaPartido(): Call } 错误:(84,77)期望元素错误:(84,14)注释参数必须是编译时常量 请帮助。