我有一個名為 Image 活動的活動,其中有 2 個片段,分別稱為 image_display 和 image_change 片段,對于 image_activity,我正在從配接器獲取資料(使用 getIntent),到目前為止它運行良好。所以我想將資料(即 URL)發送到片段,但我的方法不起作用。
我的 image_activity 代碼是這樣的
class ImageActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_image)
var gi = getIntent()
var url = gi.getStringExtra("url")
val fragment = FragmentDisplayImage.newInstance(url.toString())
Toast.makeText(this,url , Toast.LENGTH_SHORT).show()
var manager =supportFragmentManager
manager.beginTransaction().commit()
}
}
我的 FramentImage.kt 就像
private const val ARG_PARAM1 = "url"
class FragmentDisplayImage : Fragment() {
private var param1: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString("url")
var image= view?.findViewById<ImageView>(R.id.Fragimage)
Picasso.get().load(param1).resize(700, 700).centerCrop().into(image);
Toast.makeText(context, param1.toString() , Toast.LENGTH_SHORT).show()
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_display_image, container, false)
}
companion object {
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String) =
FragmentDisplayImage().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
}
}
}
}
但是,我仍然無法在配接器上獲取我的網址
uj5u.com熱心網友回復:
我想所以你沒有開始你的片段。您剛剛創建了片段物件,但從未使用管理器打開過它。
請更新您的ImageActivity代碼如下:
var gi = getIntent()
var url = gi.getStringExtra("url")
val fragment = FragmentDisplayImage.newInstance(url.toString())
val manager: FragmentManager = supportFragmentManager
val transaction: FragmentTransaction = manager.beginTransaction()
transaction.replace(R.id.container, fragment)
transaction.addToBackStack(null)
transaction.commit()
您想要放置片段的位置R.id.container將是 Layout activity_image。
你activity_image應該有
<FrameLayout
android:id="@ id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/391791.html
上一篇:導航不會呈現片段
