通过单独的类从非活动(简单布局)调用活动

时间:2018-12-10 10:20:16

标签: android android-fragments android-intent

我试图从非活动类(简单类)中调用活动。

我创建了一个选项卡式活动。然后我为片段创建了一个布局。并创建了一个单独的类,我在其中进行一些验证并调用一个活动。但我无法从该非活动类开始该活动。

这是我遇到问题的功能

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.guarding_services_layout, container, false);

    p_guard_srvc = p_guard_srvc.findViewById(R.id.guard_booknow_btn);

    p_guard_srvc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //this line, i am unable to write the correct method
            Intent i = new Intent( GuardingScreen.this , HomeScreen.class);
        }
    });

    return rootView;
}

2 个答案:

答案 0 :(得分:0)

尝试:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.guarding_services_layout, container, false);

    p_guard_srvc = p_guard_srvc.findViewById(R.id.guard_booknow_btn);
    p_guard_srvc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

             Intent i = new Intent( getActivity() , HomeScreen.class);
             getActivity().startActivity(i);

        }
    });

    return rootView;
}

答案 1 :(得分:0)

您应该将活动上下文传递给非活动类,并使用上下文开始活动。例如:您可以在Non-Activity类的构造函数中传递活动上下文,也可以为上下文创建一个setter方法。

context.startActivity(new Intent(context,YourClassName.class));