我通过在xml中设置onclick解决了这个问题。无论如何,谢谢大家。
我试图用片段中的按钮打开一个活动。但它似乎没有使用我在网上搜索过的代码。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.view2, container, false);
}
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
button = (Button) getActivity().findViewById(R.id.sys_file);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "success2", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getActivity(), system_file_visit_control.class));
}
});
}
尝试将此代码移动到onViewCreated
方法。
像这样:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
button = (Button) view.findViewById(R.id.sys_file);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "success2", Toast.LENGTH_SHORT).show();
getContext().startActivity(new Intent(getContext(), system_file_visit_control.class));
}
});
}
如果system_file_visit_control
是一个Activity,那么按下按钮后这将转移到此活动。
您可以修改onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.view2, container, false);
button = (Button) rootView.findViewById(R.id.sys_file);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Start your activity
}
});
return rootView;
}
它可能对您有所帮助,请用此替换您的代码
private View v;
private Context mContext;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
mContext = context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
v= inflater.inflate(R.layout.fragment_test, container, false);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
button = (Button) v.findViewById(R.id.sys_file);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "success2", Toast.LENGTH_SHORT).show();
startActivity(new Intent(mContext, system_file_visit_control.class));
}
});
}