Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用片段活动错误无法实例化活动。无法强制转换为android.app.Activity_Java_Android_Android Studio_Fragment_Adapter - Fatal编程技术网

Java 调用片段活动错误无法实例化活动。无法强制转换为android.app.Activity

Java 调用片段活动错误无法实例化活动。无法强制转换为android.app.Activity,java,android,android-studio,fragment,adapter,Java,Android,Android Studio,Fragment,Adapter,我需要帮助,对于onclick on recyclerview和open new fragment activity,在item list close app中单击了im,logcat错误是:无法实例化活动组件信息{com.example.divemex/com.example.works.Pem}:java.lang.ClassCastException:com.example.works.Pem无法转换为android.app.activity 我的代码适配器: @Override

我需要帮助,对于onclick on recyclerview和open new fragment activity,在item list close app中单击了im,logcat错误是:无法实例化活动组件信息{com.example.divemex/com.example.works.Pem}:java.lang.ClassCastException:com.example.works.Pem无法转换为android.app.activity

我的代码适配器:

@Override
    public void onBindViewHolder(final tramoView tramoView, final int i) {
        final TramoModel tramoModel = tramoList.get(i);
        tramoView.txtnombreMostrar.setText(tramoModel.getTramoName());
        tramoView.txtnombreMostrar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               Intent intent =  new Intent(v.getContext(), Pem.class);
                v.getContext().startActivity(intent);
            } });
    }
我的代码类片段:

public class Pem extends  Fragment {

    private TabAdapter adapter;
    private TabLayout tableLayout;
    private ViewPager viewPager;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tabs, container, false);

        viewPager = view.findViewById(R.id.request_orders_view_pager);
        tableLayout = view.findViewById(R.id.request_orders_tabs);

        adapter = new TabAdapter(getFragmentManager());
       // adapter = new TabAdapter(FragmentActivity.getSupportFragmentManager());
        adapter.addFragment(new fragment1(), "Tab 1");
        adapter.addFragment(new fragment2(), "Tab 2");
        adapter.addFragment(new fragment3(), "Tab 3");
        adapter.addFragment(new fragment4(), "Tab 4");

        viewPager.setAdapter(adapter);
        tableLayout.setupWithViewPager(viewPager);

        return view;
    }
}
错误:

您可以使用: Intent Intent=新的Intent(v.getContext(),Pem.class); v、 getContext().startActivity(意图)


但是
Pem
是一个
片段
,而不是
活动

您正在尝试处理类似活动的片段。
意图之一是开始新的活动,而不是片段

代码行下方出现异常,因为您使用
Intent
来启动
片段(因为
Pem.class
是片段);碎片不能这样开始

Intent intent =  new Intent(v.getContext(), Pem.class);
这在你得到的例外中是显而易见的 java.lang.ClassCastException:com.example.works.Pem不能强制转换为android.app.Activity

表示不允许将Pem.class强制转换为活动;这是因为它不扩展
活动
类或其任何子类

要解决此问题,请执行以下操作之一:

  • 通过扩展
    AppCompatActivity
    class,使Pem.class成为活动 (或任何活动类),并替换该活动的回调方法 而不是碎片
  • 或者在当前活动中进行片段事务,您可以找到详细信息

  • 要跳转哪个
    xxx活动
    ,第二个参数将是
    xxx活动。将使用类