Umschalten zwischen 2 layouts in android-Aktivität

Ich habe 2 verschiedene layout-Dateien, die ich verwenden möchten, für das ändern die gleichen Daten, ich war zu wechseln, um mein layout für die "Bearbeiten-Ansicht" ermöglicht es dem Benutzer zu ändern graph-Daten und dann können Sie zu einem Wechsel zurück zu einer "Detailansicht" zeigt ein detailliertes Diagramm(mit androidplot-Bibliothek).

Mein Problem ist, beim Wechsel zurück zu meinem "Bearbeiten-Ansicht" meine dargestellten Linien sind verschwunden und nur die Achsen zeichnen(also das layout wechselt und die onDraw() aufgerufen wird, ist für meine Darstellung als graph). Alles ist gespeichert, innerhalb der selben Aktivität, so verstehe ich nicht, warum funktioniert das nicht?

Den Zeilen gespeichert werden, innerhalb der Darstellung als Graph-Objekt selbst, das persistent sein soll, da es eine gespeicherte variable in meine Tätigkeit.

Verwende ich diese beiden Methoden für die switching-layout-Dateien auf eine Schaltfläche klicken.

public class GraphLibActivity extends Activity {

    private Graph graph;

    private boolean editView;

    private static TextView coordTextView;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        editView = true;

        setContentView(R.layout.graphlib);



        graph = (Graph) findViewById(R.id.graph);

        coordTextView = (TextView)findViewById(R.id.currentCoords);


        (lots of calculations)
        graph.addLine(gelHistogramPoints, linePaint);



        graph.invalidate();      
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        if(editView == true){
            inflater.inflate(R.menu.activity_menu, menu);
        }else{
            inflater.inflate(R.menu.detailed_view_menu, menu);
        }
        return true;
    }

    public boolean onPrepareOptionsMenu(Menu menu){
        menu.clear();
        MenuInflater inflater = getMenuInflater();
        if(editView == true){
            inflater.inflate(R.menu.activity_menu, menu);
        }else{
            inflater.inflate(R.menu.detailed_view_menu, menu);
        }
        graph.invalidate();
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        //Handle item selection
        switch (item.getItemId()) {


        case R.id.detailed_view:
            editView = false;
            setContentView(R.layout.imagegraph);
            return true;


        case R.id.edit_view:
            editView = true;
            setContentView(R.layout.editgraph);             
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }

    }




}
InformationsquelleAutor John Lotacs | 2011-08-10
Schreibe einen Kommentar