Android:单击列表中的某个项目后显示新片段的问题

Android:单击列表中的某个项目后显示新片段的问题,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,我有一个项目列表(Stations.java),我试图在其中一个项目中实现一个单击,以显示所有详细信息。它正确地显示了项目列表,但是当我尝试重定向到StationDetails时,setOnItemClickListener上出现了一个错误 错误: android.content.ActivityNotFoundException:找不到显式活动类 但我认为错误在于我执行了意图。我的意思是有点不对劲 代码如下: public class Stations extends Fragment {

我有一个项目列表(Stations.java),我试图在其中一个项目中实现一个单击,以显示所有详细信息。它正确地显示了项目列表,但是当我尝试重定向到StationDetails时,setOnItemClickListener上出现了一个错误

错误:

android.content.ActivityNotFoundException:找不到显式活动类

但我认为错误在于我执行了意图。我的意思是有点不对劲

代码如下:

public class Stations extends Fragment {

final String TAG = "Debugging";
final String Url = "...";

private ListView lstStations;
ArrayList<Station> dataset;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.station_list, container, false);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    lstStations = (ListView)getView().findViewById(R.id.lstStations);
    RequestStations();
    lstStations.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            getActivity();

            TextView textViewName = (TextView) view.findViewById(R.id.txt_row_station);
            String stationName = textViewName.getText().toString();

            for(Station obj : dataset) {
                if(obj.getName() == stationName){
                    Log.d("############","Items " + stationName);

                    Intent intent = new Intent(getActivity(), StationDetails.class);
                    startActivity(intent);
                }
            }
        }

    });

   }
... }
下面是清单,也许这会有所帮助

<?xml version="1.0" encoding="utf-8"?>



谢谢

您在清单中声明stationDetails.class了吗

NO!!
你会给出的答案是,因为它是一个碎片

那么,你为什么要像活动一样打开或启动它??? 这样做

原因是android将其视为一项活动,但事实并非如此,它最终会出现错误。。片段在活动上运行,因此您可以将片段嵌入到活动中。。 编辑:你想做什么很好,但是如果你想打开一个活动,我猜它是stationDetails.class,那么我建议你像这样在清单中声明它

<activity
    android:name=".StationDetails"
    android:label="your stationdetails name" >        
</activity>
public class StationDetails extends Activity{
有了它,您的StationDetails类就是一个活动。但是如果您想将StationDetails视为片段,那么请使用第一个方法
让我知道它是否有用

我已经测试过,但它不起作用。我刚开始使用安卓系统,所以我真的不知道每件事是如何运作的。让我解释一下我想要什么。我有一个带有发票列表的片段,现在我希望在用户单击一个项目时实现,然后显示所有详细信息。在看到你的评论之后,也许我要做的是在onclicklistener中打开一个新的活动,而不是一个片段(我知道在你回答之后我的代码是错误的),不是吗?如果它是正确的,我该怎么做?什么不起作用?打开碎片?好吧,我正在编辑答案answer@gon250Problem现在,我可以看到新的片段,但它与旧片段重叠。是的。。这是因为添加代码{transaction.add(R.id.fragment_container,station);},所以将其更改并使其替换为{transaction.replace(R.id.fragment_container,station);}。代码在括号内@gon250
 Fragment station = new StationDetails();
 FragmentTransaction transaction = getFragmentManager().beginTransaction();
 transaction.add(R.id.fragment_container, station);
 transaction.commit();
<activity
    android:name=".StationDetails"
    android:label="your stationdetails name" >        
</activity>
public class StationDetails extends Activity{