gpt4 book ai didi

java - 分号和 'cannot resolve ...' 的奇怪问题

转载 作者:行者123 更新时间:2023-12-02 10:55:54 26 4
gpt4 key购买 nike

我最近一直在跟进 Android 应用程序开发教程,但由于一些错误,我的代码无法构建。我已经完成了错误告诉我的操作(放置分号),但这导致发生意外的 token 错误。

这是我的代码:

package nl.yourikuilman.android.ultimatemcnews;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import static nl.yourikuilman.android.ultimatemcnews.fun.showNewsFragment;

public class MainActivity {
public void AppCompatActivity() {
override fun;
onCreate(savedInstanceState) {
super.onCreate(savedInstanceState) {
setContentView(R.layout.activity_main);

showNewsFragment();
}
}
}
}
public class fun {
public static void showNewsFragment(){
val tag="NewsListFragment";
val existingFragmentWithTag=supportFragmentManager.findFragmentByTag(tag);

if(existingFragmentWithTag==null){
supportFragmentManager.beginTransaction()
.add(R.id.newsListFragmentContainer,NewsListFragment(),tag)
.commit();
}
}
}

我是在 Android Studio 中编写的,并且还在同一个项目中使用 Kotlin。这是我的 java 代码的错误列表(以便 Android Studio 向我抛出错误):

  • Cannot resolve symbol 'override'
  • Cannot resolve method 'onCreate(?)'
  • Cannot resolve symbol 'savedInstanceState'
  • Cannot resolve method 'onCreate(?)'
  • Cannot resolve symbol 'savedInstanceState'
  • Cannot resolve method 'setContentView(int)'
  • Cannot resolve symbol 'val' (got this 2 times in a row)
  • Cannot resolve symbol 'supportFragmentManager' (got this 2 times in a row)
  • Method call expected (this is a note from Android Studio, not an error) [this points '.add(R.id.newsListFragmentContainer,NewsListFragment(),tag)' out, more specific: 'NewsListFragment()' is pointed out].

最佳答案

您不应该像在 Java 中那样在 Kotlin 代码中使用分号——它们是不必要的困惑。您的代码应该更符合以下内容:

class MainActivity : AppCompatActivity() {

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

showNewsFragment()
}

fun showNewsFragment() {
val tag = "NewsListFragment"
val existingFragmentWithTag = supportFragmentManager.findFragmentByTag(tag)

if (existingFragmentWithTag == null) {
supportFragmentManager.beginTransaction()
.add(R.id.newsListFragmentContainer, NewsListFragment(), tag)
.commit()
}
}

}

顺便说一句:如果您还不熟悉 Java,我会坚持使用它,直到您了解基础知识后再选择 Kotlin。从长远来看,它会对您有所帮助,尤其是在使用 Android 时(因为大多数库和 SDK 都是 Java)。另外:虽然 Java/Kotlin 具有 100% 互操作性,但它们仍然需要位于单独的文件中(您的示例混合了两种语言)。

关于java - 分号和 'cannot resolve ...' 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com