我需要帮助,对于 onclick recyclerview 并打开新的 fragment Activity ,我在项目列表中单击关闭应用程序,并且 logcat 错误是:无法实例化 Activity ComponentInfo{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);
} });
}
我的代码类 fragment :
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;
}
}
错误:
最佳答案
您正在尝试处理像 Activity 这样的 fragment 。 Intents
的目的之一是启动新的 Activity ,而不是 fragment 。
下面的代码行出现异常,因为您使用 Intent
来启动 Fragment
(因为 Pem.class
是一个分段);并且 fragment 不能以这种方式启动。
Intent intent = new Intent(v.getContext(), Pem.class);
这在你得到的异常中很明显 java.lang.ClassCastException:com.example.works.Pem 无法转换为 android.app.Activity
这表明不允许将 Pem.class 转换为 Activity;这是因为它不扩展 Activity
类或其任何子类。
要解决此问题,可以:
- 通过扩展
AppCompatActivity
类使 Pem.class 成为 Activity (或任何 Activity 类),并替换 Activity 的回调方法 而不是 fragment 。 - 或者在当前 Activity 中进行 fragment 事务并 here您可以找到详细信息
关于java - 调用 fragment Activity 错误无法实例化 Activity 。无法转换为 android.app.Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61471971/