我对活动有一个imageview,该onview具有onclick来显示对话框以寻求帮助,对话框的内容取决于片段的内容。问题是我想在特定的片段后隐藏帮助imageview,但是我找不到片段内部的viewviewbyID到setVisibility的imageview,因为它返回空对象引用。
我为对话框的内容创建了一个公共的静态字符串,以便从片段内部进行更改。
MainActivity.java
ivHelp = findViewById(R.id.ivHelp);
private void showDialog(String title, String message){
if(title.equals("hide")){
ivHelp.setVisibility(View.INVISIBLE);
}
else {
Dialog dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = dialog.getWindow();
window.setBackgroundDrawableResource(android.R.color.transparent);
dialog.setContentView(R.layout.dialog_help);
ImageView btnClose = (ImageView) dialog.findViewById(R.id.dialog_close);
TextView tvTitle = (TextView) dialog.findViewById(R.id.dialog_title);
TextView tvMessage = (TextView) dialog.findViewById(R.id.dialog_message);
tvTitle.setText(title);
tvMessage.setText(message);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
片段
fragmentview = inflater.inflate(R.layout.fragment_enter_car_details, container, false);
ivHelp = fragmentview.findViewById(R.id.ivHelp);
btnBook = fragmentview.findViewById(R.id.btnEnterCarDetails_Book);
btnBook.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ivHelp.performClick();
MainActivity.dialogTitle="hide";
FragmentTransaction ft =getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, new FindingWasherFragment());
ft.commit();
}
});
return fragmentview;
imageview是活动上的问号
答案 0 :(得分:1)
我用这个解决了
ivHelp = ((MainActivity)getContext()).findViewById(R.id.ivHelp);
然后
ivHelp.setVisibility(View.INVISIBLE);
工作