使用片段中的按钮打开活动

问题描述 投票:1回答:3

我通过在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));
        }

    });
}
android
3个回答
1
投票

尝试将此代码移动到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,那么按下按钮后这将转移到此活动。


0
投票

您可以修改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;
}

0
投票

它可能对您有所帮助,请用此替换您的代码

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));
        }

    });
}
© www.soinside.com 2019 - 2024. All rights reserved.