我想在片段布局中單擊按鈕時顯示警報對話框。我試過了,但應用程式在運行時崩潰了。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentWalletBinding.inflate(inflater, container, false);
Button button = (Button)getView().findViewById(R.id.add_money);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertdialog = new AlertDialog.Builder(view.getContext());
alertdialog.setMessage("this is message");
alertdialog.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getContext(),"toast message",Toast.LENGTH_SHORT).show();
}
}).show();
}
});
return binding.getRoot();
}

uj5u.com熱心網友回復:
onCreateViewView可以通過方法進一步獲取的回傳值getView()。并且您在onCreateView有機會回傳自己View的框架之前呼叫它(它仍在內部方法,還return binding.getRoot();沒有)
如果您正在使用視圖系結,那么Button從那里獲取您的
Button button = (Button) binding.addMoney;
甚至只是嚴格使用(沒有額外的 local Button)
binding.addMoney.setOnClickListener(...
如果您真的想使用findViewById(但為什么...),那么binding.getRoot()即使尚未回傳/繪制,您也可以查看內部
Button button = (Button) binding.getRoot().findViewById(R.id.add_money);
uj5u.com熱心網友回復:
有問題
(Button)getView().findViewById(R.id.add_money);
請確保 id 與 XML 中的相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/435072.html
下一篇:如何檢查三個值中的兩個是否相同?
