Java OnClickListener 在 Android 片段中不工作
Java OnClickListener not working in Android Fragment
我正在尝试在 Fragment
中添加对按钮的简单点击,但该事件被忽略了。
这是代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View i = inflater.inflate(R.layout.fragment_id_upload, container, false);
btn = i.findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("data","ok clickled");
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("hjgdfhfghfghf gfdgf");
AlertDialog dialog = builder.create();
dialog.show();
}
});
return i;
}
不知道代码有什么问题?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View i = inflater.inflate(R.layout.fragment_id_upload, container, false);
btn = i.findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("data","ok clickled");
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
builder.setMessage("hjgdfhfghfghf gfdgf");
AlertDialog dialog = builder.create();
dialog.show();
}
});
return i;
}
Try requireActivity() instead of getActivity()
好的,我已经使用 FragmentManager
解决了这个问题
喜欢 :-
FragmentManager fragment = getSupportFragmentManager();
fragment.beginTransaction().replace(R.id.fragmentContainerView, fragment_id_upload.class,null).commit();
R.id.fragmentContainerView //this is fragment container view
有关更多详细信息:- 转到
我正在尝试在 Fragment
中添加对按钮的简单点击,但该事件被忽略了。
这是代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View i = inflater.inflate(R.layout.fragment_id_upload, container, false);
btn = i.findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("data","ok clickled");
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("hjgdfhfghfghf gfdgf");
AlertDialog dialog = builder.create();
dialog.show();
}
});
return i;
}
不知道代码有什么问题?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View i = inflater.inflate(R.layout.fragment_id_upload, container, false);
btn = i.findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("data","ok clickled");
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
builder.setMessage("hjgdfhfghfghf gfdgf");
AlertDialog dialog = builder.create();
dialog.show();
}
});
return i;
}
Try requireActivity() instead of getActivity()
好的,我已经使用 FragmentManager
喜欢 :-
FragmentManager fragment = getSupportFragmentManager();
fragment.beginTransaction().replace(R.id.fragmentContainerView, fragment_id_upload.class,null).commit();
R.id.fragmentContainerView //this is fragment container view
有关更多详细信息:- 转到