我已经构建了一个片段,我希望将其放置在活动中。
到目前为止,我的代码如下所示:
MainActivity.kt
class MainActivity: AppCompatActivity() {
@Inject
lateinit var teamInfoModule: TeamInfoModule;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
DaggerServiceModuleComponent.create().inject(this)
val bundle = Bundle()
val teamArrayList: ArrayList<Team> = this.teamInfoModule.getAllTeamData()
val homeFragment = HomeFragment()
bundle.putParcelableArrayList("teamData", teamArrayList)
homeFragment.arguments = bundle
val fragmentManager: FragmentManager = supportFragmentManager
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.home_fragment, homeFragment).commit()
}
}
Run Code Online (Sandbox Code Playgroud)
活动主文件
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/activity_main">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
HomeFragment.kt
class HomeFragment @Inject constructor(): Fragment() {
lateinit var team: Team
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, …Run Code Online (Sandbox Code Playgroud) 我有一个可分割的团队课程
@Parcelize
class Team(var name: String, var teamMembers: List<String>, var id: UUID): Parcelable
Run Code Online (Sandbox Code Playgroud)
我有一项服务返回(当前硬编码的)团队列表:
@Module
class TeamInfoModule @Inject constructor(): ITeamInfoModule {
@Provides
override fun getAllTeamData(): List<Team> { ... }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够将团队列表从活动传递到片段中,如下所示:
class MainActivity: AppCompatActivity() {
@Inject
lateinit var teamInfoModule: TeamInfoModule;
lateinit var team: Team;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
DaggerServiceModuleComponent.create().inject(this)
val bundle = Bundle()
val teamArrayList: List<Team> = this.teamInfoModule.getAllTeamData()
val homeFragment = HomeFragment()
bundle.putParcelable("teamData", teamArrayList)
homeFragment.arguments = bundle
}
}
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:Type Mismatch. Required: Parcelable? Found: List<Team>.
我知道单个团队可以传递给我的片段,因为它不会引发错误。
我的问题是,是否有一个我还没有找到的实用程序可以以某种方式将列表序列化为 …
我的任务是"截断一个字符串(第一个参数),如果它超过给定的最大字符串长度(第二个参数).返回带有...结尾的截断字符串.
请注意,将三个点插入末尾将增加字符串长度.
但是,如果给定的最大字符串长度num小于或等于3,则在确定截断的字符串时,添加三个点不会增加字符串长度."
我写了代码:
function truncateString(str, num) {
if (num > str.length){
str.slice(num);
return str.append("...");
}
else if (num < 3) {
str.slice(3);
return str.append("...");
}
else {
return "This is not a string";
}
}
truncateString("A-tisket a-tasket A green and yellow basket", 11);
Run Code Online (Sandbox Code Playgroud)
但是,它没有做我需要它做的事情并且在每次运行时返回"这不是一个字符串".谁能帮我?