我有一個項目列表(Stations.java),我試圖在其中一個項目中實施點擊以顯示所有細節。它正確顯示了項目列表,但當我嘗試重定向到StationDetails時,我在setOnItemClickListener上發生了錯誤。Android:單擊列表項目後顯示新片段的問題
錯誤:
android.content.ActivityNotFoundException: Unable to find explicit activity class
但我覺得當我執行的意圖誤差。我的意思是說有什麼問題。
下面是代碼:
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);
}
}
}
});
}
... }
下面是我試圖展現片段。
public class StationDetails extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.station_details, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
下面是清單,也許可以幫助。
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MyActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
感謝
我已經過測試並且不起作用。我新的工作與Android,所以我真的不知道如何運作的一切。讓我來向你解釋我想要的。我有一張帶有發票清單的片段,現在我想要在用戶點擊一個項目時顯示所有細節。看到你的評論後,也許我所要做的就是在onclicklistener中打開一個新的活動,而不是一個片段(我知道你的答案後我的代碼是錯誤的),不是嗎?如果是對的,我該怎麼做? – gon250 2014-10-17 13:52:22
什麼沒有工作?打開片段?好吧,我編輯答案檢查編輯答案@ gon250 – Elltz 2014-10-17 14:15:19
謝謝,這是你評論的第一種方式。 – gon250 2014-10-18 22:01:47