第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Kotlin 中使用片段內(nèi)的按鈕進(jìn)行 Android 開(kāi)發(fā)?

如何在 Kotlin 中使用片段內(nèi)的按鈕進(jìn)行 Android 開(kāi)發(fā)?

HUWWW 2023-08-23 15:06:46
我是 Android 開(kāi)發(fā)新手,并從 Android Studio 創(chuàng)建了一個(gè)新項(xiàng)目,其中包含 Kotlin 中的底部導(dǎo)航活動(dòng)。此外MainActivity.kt,還生成了儀表板、主頁(yè)和通知片段及其 ViewModel。當(dāng)我處理 MainActivity 類(lèi)中的按鈕單擊時(shí),一切正常。class MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        val navView: BottomNavigationView = findViewById(R.id.nav_view)        val navController = findNavController(R.id.nav_host_fragment)        // Passing each menu ID as a set of Ids because each        // menu should be considered as top level destinations.        val appBarConfiguration = AppBarConfiguration(setOf(                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))        setupActionBarWithNavController(navController, appBarConfiguration)        navView.setupWithNavController(navController)        //handle button click        val temporary_button = findViewById<Button>(R.id.temporary_button)        temporary_button.setOnClickListener{            makeText(this, "You clicked the button", LENGTH_LONG).show()        }    }}這是工作按鈕的屏幕截圖 按鈕工作正常但是我不明白如何使用不同片段內(nèi)的按鈕。我嘗試為儀表板片段第二個(gè)按鈕的屏幕截圖中的第二個(gè)按鈕創(chuàng)建功能,但我還沒(méi)有找到解決方案。我努力了
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

這就是我最終的結(jié)果:


class DashboardFragment : Fragment() {


private lateinit var dashboardViewModel: DashboardViewModel


override fun onCreateView(

    inflater: LayoutInflater,

    container: ViewGroup?,

    savedInstanceState: Bundle?

): View? {

    dashboardViewModel =

        ViewModelProviders.of(this).get(DashboardViewModel::class.java)

    val root = inflater.inflate(R.layout.fragment_dashboard, container, false)

    val textView: TextView = root.findViewById(R.id.text_dashboard)

    dashboardViewModel.text.observe(this, Observer {

        textView.text = it

    })

    val button2 : Button = root.findViewById<Button>(R.id.temporary_button2)

    button2.setOnClickListener{

        println("clicked button 2")

        Toast.makeText(view?.context, "Button Clicked", Toast.LENGTH_LONG).show()

    }

    return root

}

}


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

片段中沒(méi)有findViewById,通常在片段內(nèi)您應(yīng)該重寫(xiě)該onCreateView方法,膨脹您自己的布局并嘗試從您膨脹的視圖中獲取視圖。例如 :


    @Nullable

    @Override

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        if (mContentView == null){

            mContentView = inflater.inflate(R.layout.family_fragment_scene_list, container, false);

        }


        type = getArguments().getInt(ARGS_KEY_TYPE);


        adapter = new SceneAdapter(getContext());

        // get views from mContentView

        mSceneList = (RecyclerView) mContentView.findViewById(R.id.swipe_target);

        mSceneList.setLayoutManager(new LinearLayoutManager(getContext()));

        mSceneList.setAdapter(adapter);


        return mContentView;

    }


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

使用 getView()/view 嘗試內(nèi)部 onViewCreated 而不是 onCreateView。


例如。:


override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {

   val temporary_button = getView().findViewById<Button>(R.id.temporary_button2)

   temporary_button2.setOnClickListener{

   makeText(this, "You clicked the button", LENGTH_LONG).show()

   }

 }



查看完整回答
反對(duì) 回復(fù) 2023-08-23
  • 3 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)