Java 找不到显式活动类(Android Studio片段)

Java 找不到显式活动类(Android Studio片段),java,android,android-studio,android-fragments,Java,Android,Android Studio,Android Fragments,我遵循了和的教程(内部有单独的选项卡),它们都在导航抽屉中的相同片段环境中工作。现在我要做的是将这两个片段合并在一起,所以当我点击我的名为“Gallery”的Listview时,它会显示一个不同Cathegory的Listview,用于Gallery照片。现在,当我点击某个listview时,应用程序将不会响应,因此在这个过程中退出 我的TabGallery片段代码,它是一个“LISTVIEW” 尽管我从未在GalleryFragment中声明过两次包,也没有在androidmanifest.x

我遵循了和的教程(内部有单独的选项卡),它们都在导航抽屉中的相同片段环境中工作。现在我要做的是将这两个片段合并在一起,所以当我点击我的名为“Gallery”的Listview时,它会显示一个不同Cathegory的Listview,用于Gallery照片。现在,当我点击某个listview时,应用程序将不会响应,因此在这个过程中退出

我的TabGallery片段代码,它是一个“LISTVIEW”


尽管我从未在GalleryFragment中声明过两次包,也没有在androidmanifest.xml中声明过包。

您应该这样打开

GalleryFragment fr = new GalleryFragment();
Bundle args = new Bundle();
fr.setArguments(args);
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.gallery_fragment, fr);
fragmentTransaction.commit();

您正试图将
片段
用作
活动

您可以将片段视为活动的模块化部分,它有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(有点像可以在不同活动中重用的“子活动”)

这是如何将
片段
添加到
活动的
视图组

ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();

您需要阅读更多关于如何在此

中使用
fragment
的内容。您无法使用此方法打开fragment。您正在按意图启动fragment,我如何实现它?还有其他选择吗?片段事务通过片段管理器进行,而不是通过意图。以前在我的MainActivity中完成过。这在片段中是可能的吗?是的,这是从活动而不是通过意图启动片段类的方式。所以我所要做的就是在片段中的clickListener中实现这个想法?
com.example.guitarista.citem/com.example.guitarista.citem.Gallery.GalleryFragment
GalleryFragment fr = new GalleryFragment();
Bundle args = new Bundle();
fr.setArguments(args);
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.gallery_fragment, fr);
fragmentTransaction.commit();
ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();