我正在用静态编程语言制作一个应用程序,我试图将我的主要活动(ScuterSharingActive)的内容放入一个片段中。构建成功,但我的程序崩溃了,我在LogCat中遇到了以下错误
Process: dk.moapd.scootersharing, PID: 8292
java.lang.IllegalArgumentException: No view found for id 0x7f0800c6 (dk.moapd.scootersharing:id/fragment_container_view_tag) for fragment ScooterSharingFragment{92ed9ba} (def2f41e-5fd6-4855-a554-90398882b654 id=0x7f0800c6)
有人知道会是什么吗?
这是xml文件fragment_scooter_sharing.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ScooterSharingFragment">
<View
android:layout_width="match_parent"
android:layout_height="20dp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scooter_title"/>
<!-- Button to add rides-->
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/start_button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit_button"
android:layout_gravity="center"
android:text="@string/edit_button"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/list_button"
android:layout_gravity="center"
android:text="@string/list_button"/>
<ListView
android:id="@+id/rides_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
还有滑板车ragment.kt课
package dk.moapd.scootersharing
import ...
private const val TAG = "ScooterSharingFragment"
/**
* A simple [Fragment] subclass.
* Use the [ScooterSharingFragment.newInstance] factory method to
* create an instance of this fragment.
*/
class ScooterSharingFragment : Fragment() {
//View binding for ScooterSharingActivity
private lateinit var binding : FragmentScooterSharingBinding
private lateinit var adapter : ScooterArrayAdapter
private lateinit var titleField : EditText
private lateinit var startButton : Button
private lateinit var editButton : Button
private lateinit var listButton : Button
private lateinit var scooterList : ListView
// A set of static attributes used in this activity class.
companion object {
lateinit var ridesDB : RidesDB
private lateinit var adapter : ScooterArrayAdapter
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_scooter_sharing, container, false)
titleField = view.findViewById(R.id.scooter_title) as EditText
startButton = view.findViewById(R.id.start_button) as Button
editButton = view.findViewById(R.id.edit_button) as Button
listButton = view.findViewById(R.id.list_button) as Button
scooterList = view.findViewById(R.id.rides_list_view) as ListView
//Singleton to share an object between activites
ScooterSharingActivity.ridesDB = RidesDB.get(requireContext())
val rides = ScooterSharingActivity.ridesDB.getScooters()
ScooterSharingFragment.adapter = ScooterArrayAdapter(requireContext(), R.layout.list_rides, rides)
with(binding){
//Start button
startButton.setOnClickListener{
//Start the application
Log.d(TAG, "StartRide called")
val intent = Intent(requireContext(), StartRideActivity::class.java) //Change baseContext to requireContext later
startActivity(intent)
}
//Edit button
editButton.setOnClickListener{
//Edit ride
Log.d(TAG, "EditRide called")
val intent = Intent(requireContext(), EditRideActivity::class.java)
startActivity(intent)
}
//List button
listButton.setOnClickListener{
ridesListView.adapter = ScooterSharingFragment.adapter
}
}
return view
}
}
试着这样设置你的片段:
class MyFragment : Fragment() {
private var _binding: FragmentMyBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentMyBinding.inflate(inflater, container, false)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Access your views in xml like this:
binding.editButton.setOnClickListener {
// Your code
}
}
}
还要确保在build中添加这一行。用于视图绑定的渐变:
buildFeatures {
viewBinding = true
}
我一整天都被困在这个问题上,我似乎找不到一个适合我的情况的答案,足以让我使用。 当我单击一个列表项时,比如Blue,在Portraint中,我希望它显示一个新的片段,这是一个蓝色的屏幕,而在Sandwork中,它在半个屏幕上显示该片段,在另一个屏幕上显示listview。我正在使用ActionBarSherlock和碎片来完成这一点。 我从里到外构建了它,所以我从一个列表开始,它按照我想要的方式工
问题内容: 我正在尝试打开一个保存在源文件夹本身中的CSV文件名“ logger.csv”。 但是,这一直在给我一个“找不到文件”错误。 问题答案: 如果您现在就使用相对路径,则该文件需要存在于项目根目录中, 而不是 存在于java文件的目录中。 考虑以下层次结构: 不管用。 将 现在 的工作。(注意,该文件与src目录相邻。)
问题内容: 我有一个活动,其中包含一个片段,在该片段中有一个按钮,当单击它时,会弹出一个对话框。 在此对话框中,有一个Viewpager,其中包含一些要显示的片段。 这是代码和错误,请您花宝贵的时间告诉我我哪里错了。非常感谢您的帮助。 MainActivity.class MyFragment.class PagerDialog.class 这是dialog.xml: 这是错误 问题答案: 我找到
自从我将IntelliJ升级到Ultimate 2019.2之后,我突然开始出现以下问题: null 我是通过单击主函数上的play按钮来运行这个。我不得不将目录注释为sources目录和test sources。我重新进口了我的Gradle.Build。我试着重建项目,但它也找不到我的源项目中的项目。 我还尝试使缓存无效并重新启动。没有变化。 我想不出还有什么可以尝试的。
我花了一小段时间试图研究片段和活动之间的差异,但没有找到任何结论。这条线程似乎建议片段是片段,而片段活动天生比活动快? 它可能是相关的,使平板版本的应用程序在未来,在这种情况下,我认为碎片将是有用的,但B)是一个主要的头痛从活动重新设计到使用碎片代替? C)当使用片段时,你可以让屏幕-a作为你的主要活动,屏幕-B作为你的片段-#1,或者你必须让两个屏幕作为一个片段,主活动作为父。
我正在使用Reverfit2,我试图从我用Python制作的Web服务中请求一些数据。 实际上,它抛出了一个“java.lang.IllegalStateException”,但是当我调用GET方法时,API返回代码200,而且我还可以看到用于调试响应JSON的打印版本。问题是Call方法,因为它总是在failure时执行。 求求你,救命! 这是我的(简单的)Python Web服务,API-Pr