Define a callback interface in the Simulation list fragment which is called with the simulation id that is selected. Implement this interface in the OpenRocketViewer which then invokes the Intent for the SimulationViewer.

This commit is contained in:
Kevin Ruland 2012-01-25 17:35:46 +00:00
parent 1d127a0162
commit 2fc45af6e0
2 changed files with 33 additions and 6 deletions

View File

@ -4,9 +4,11 @@ package net.sf.openrocket.android.rocket;
import net.sf.openrocket.R; import net.sf.openrocket.R;
import net.sf.openrocket.android.ActivityHelpers; import net.sf.openrocket.android.ActivityHelpers;
import net.sf.openrocket.android.Application; import net.sf.openrocket.android.Application;
import net.sf.openrocket.android.simulation.SimulationViewer;
import net.sf.openrocket.android.util.TabsAdapter; import net.sf.openrocket.android.util.TabsAdapter;
import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.rocketcomponent.Configuration; import net.sf.openrocket.rocketcomponent.Configuration;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
@ -19,7 +21,8 @@ import android.view.MenuItem;
import android.widget.TabHost; import android.widget.TabHost;
public class OpenRocketViewer extends FragmentActivity public class OpenRocketViewer extends FragmentActivity
implements SharedPreferences.OnSharedPreferenceChangeListener implements SharedPreferences.OnSharedPreferenceChangeListener,
Simulations.OnSimulationSelectedListener
{ {
private static final String TAG = "OpenRocketViewer"; private static final String TAG = "OpenRocketViewer";
@ -113,4 +116,11 @@ implements SharedPreferences.OnSharedPreferenceChangeListener
return super.onMenuItemSelected(featureId, item); return super.onMenuItemSelected(featureId, item);
} }
@Override
public void onSimulationSelected(int simulationId) {
Intent i = new Intent(this, SimulationViewer.class);
i.putExtra("Simulation",simulationId);
startActivity(i);
}
} }

View File

@ -2,12 +2,11 @@ package net.sf.openrocket.android.rocket;
import net.sf.openrocket.R; import net.sf.openrocket.R;
import net.sf.openrocket.android.Application; import net.sf.openrocket.android.Application;
import net.sf.openrocket.android.simulation.SimulationViewer;
import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.document.Simulation; import net.sf.openrocket.document.Simulation;
import net.sf.openrocket.unit.Unit; import net.sf.openrocket.unit.Unit;
import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.unit.UnitGroup;
import android.content.Intent; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.util.Log; import android.util.Log;
@ -22,7 +21,12 @@ import android.widget.TextView;
public class Simulations extends Fragment { public class Simulations extends Fragment {
public interface OnSimulationSelectedListener {
public void onSimulationSelected( int simulationId );
}
private ListView simulationList; private ListView simulationList;
private OnSimulationSelectedListener listener;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
@ -33,6 +37,19 @@ public class Simulations extends Fragment {
return v; return v;
} }
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if ( activity instanceof OnSimulationSelectedListener ) {
listener = (OnSimulationSelectedListener) activity;
}
}
public void setListener(OnSimulationSelectedListener listener) {
this.listener = listener;
}
@Override @Override
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
@ -64,9 +81,9 @@ public class Simulations extends Fragment {
simulationList.setOnItemClickListener( new OnItemClickListener() { simulationList.setOnItemClickListener( new OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView l, View v, int position, long id) { public void onItemClick(AdapterView l, View v, int position, long id) {
Intent i = new Intent(getActivity(), SimulationViewer.class); if (listener != null ) {
i.putExtra("Simulation",(int)id); listener.onSimulationSelected(position);
startActivity(i); }
} }
}); });