Ich entwickle eine Android App. Auf dem Hauptaktivitätsbildschirm befindet sich eine Ansicht, die die onDraw-Methode der View-Klasse aufruft. Aber was ist der richtige Weg, die Sichtweise einzubeziehen?Wie kann ich die beste Möglichkeit mit einbeziehen?
enthalten die Ansicht mit Tags in der XML. Die Ansicht wird gezeichnet.
umfassen die Ansicht mit invalidate() und in der XML-Datei: nichts
gezogen : OnDraw zweimal
umfassen die Ansicht mit invalidate() und ohne Tags in der XML-Datei aufgerufen wird
umfassen die Ansicht mit setContentView(): die Ansicht gezogen wird, aber es gibt keine ActionBar mehr
können Sie mir einen Tipp geben, wie es zu lösen? Da wir etwas wollen, kann die Ansicht: 1. Wenn wir zu einer anderen Aktivität gehen, indem Sie auf das Menü der Aktionsleiste klicken und mit der Nach-oben-Taste zurückkehren, sollte die alte Ansicht erneut angezeigt werden und nicht erneut gezeichnet werden. Wie ist das möglich.
- mit einer Absicht zu MainActivity durch Klicken auf eine Schaltfläche aus einer anderen Aktivität, sollte die onDraw-Methode aufgerufen werden.
Ich hoffe, jemand kann mir helfen :)
Die XML der Hauptaktivität:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
Der Inhalt XML der Hauptaktivität:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="MainActivity"
tools:showIn="@layout/activity_main">
<view
android:id="@+id/view"
class="MyView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.437"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
The Main Actitivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//XML-Layout über die Ressourcen Variable holen
setContentView(R.layout.activity_main);
//Toolbar als ActionBar hinzufügen
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Logo in Action Bar integrieren
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.drawable.hsd_logo_weiss);
getSupportActionBar().setDisplayUseLogoEnabled(true);
}
}
Vielen Dank für Ihre Antwort. Aber ist es möglich, onDraw nicht zu verwenden? Dann wird die Ansicht nicht gezeichnet. Oder liege ich falsch? Gibt es eine Möglichkeit, besonders zu definieren, wenn die Ansicht gerendert wird und wenn der alte Zustand übernommen wird? – Tommy
Mit Android: launchMode = "singleTop" im Manifest funktioniert es. Der alte Staat ist vergeben. Aber nur in Android 7 gibt es ein Problem: Wenn ich die Up-Taste drücke, werden alle Änderungen der Einstellung Activity angenommen. Die Änderungen sollten jedoch nur angenommen werden, wenn Sie im Einstellungsbildschirm auf die Schaltfläche zum Anwenden klicken. Auf Andorid 5 und 6 funktioniert es gut. – Tommy
Wenn ich mich richtig erinnere, in der activity.xml sollte die Einstellung sein, um die richtige (was war das Wort ...) "Seite", wenn Sie weitermachen und wenn Sie gehen, außer etwas im Code, ** am meisten wahrscheinlich ein Zuhörer **, verändert etwas darin –