hatte doch geschrieben Das du nach dem inflaten die Button neu Initialisieren musst findviewbyid....
Beiträge von nono124
-
-
Mit etwas suchen im Internet
LayoutInflater inflater = LayoutInflater.from(getContext()); inflater.inflate(R.layout.view_with_merge_tag, this);
-
Ich erinnere mich wage das dies mit dem inflater oder LayoutInflater gemacht habe. Mit setContentView geht es auf jedenfall nicht denn du bist nicht mehr in der oncreat.
-
Ok damit ist mir der Sachverhalt klarer.
Denke es ist sinnvoll die Datei online zu legen. Die App kann ja erst prüfen ob eine neue Version online ist und wenn ja dann runter laden. Dann kannst du sie laden und anzeigen. Wo hattest du bis jetzt die Datei in den assets oder. -
Ich habe das vor langer Zeit mal gemacht muß schauen ob ich die Quelle noch habe. Bin im Moment nicht zu Hause. Werde nachschauen kann aber etwas dauern.
-
Natürlich musst du nach dem aufblasen des Layouts alle Button textviews... Neu inizaliren.
Doppelte id s darf es nicht geben. -
Wo ist dein Problem?
Wird das neue Layout angezeigt?
Wann bricht deine app ab? -
Excel Dateien anzeigen kann doch heute fast jedes Handy von Haus aus. Und wenn nicht gibt es doch dafür genügend Apps im Store auch bearbeiten ändern ist möglich.
-
Hi hast du wirklich eine Excel Datei eingebunden oder nur eine Tabelle? Wenn es eine Datei im xls Format wäre bräuchtest ja nur die Datei ändern. Oder die Datei in der app laden vom Dateisystem und nicht fest in die app packen.
-
Zeige mal wie du das mit dem neu laden gemacht hast . Gehen tut das schon ist nur absolut keine gute Programmierung und sehr Fehler anfällig. Etweder Aktivitys oder Fragmente.
-
Mit setContentView kannst du kein PopUP laden. PopUP ist ein Dialog.
-
Hallo
Deine MainActivity sieh soweit gut aus nur die Zeilen 19-23 brauchst du nicht wirklich denn du willst nicht aus der Main die Fragmente aufrufen.Zu deiner FragmentKlasse „StartFragment“
Die Button würde ich in der onActivityCreated erstellen. Und zwar alle die du brauchst, nicht in der onCreateView.
btnStart = getActivity().findViewById(R.id.btn_start);
btnStart.setOnClickListener(this);Frage was soll diese Zeile Nr 54 „if (v.findViewById(R.id.container) == null){„
Wenn du prüfen möchtest ob ein bestimmtes Layout geladen ist. Damit es z.B. nicht noch mal geladen wird, dann musst du nach der ID des Layout prüfen nicht nach dem Container.Du brauchst keinen neuen fm erstellen hole dir den aus der Main. Bei der Arbeit mit Fragmenten wird deine Main nicht beendet ein Fragment kann nicht alleine laufen nur innerhalb einer Activity/FragmentActivity.
fragtrans = getActivity().getFragmentManager().beginTransaction();
Habe deinen Code etwas verändert denke so müste es gehen. Kann leider nicht Testen habe hier kein AS.Java
Alles anzeigenimport android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class StartFragment extends Fragment implements View.OnClickListener { private TextView view_title, btnStart, btnHighscore, btnQuit; public FragmentTransaction fragtrans; public Activity myActivity; Fragment gameFragment = new GameFragment(); @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_start, null); view_title = layout.findViewById(R.id.view_title_menu); return layout; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); btnStart = getActivity().findViewById(R.id.btn_start); btnStart.setOnClickListener(this); btnQuit = getActivity().findViewById(R.id.btn_quit); btnQuit.setOnClickListener(this); btnHighscore = getActivity().findViewById(R.id.btn_highscore); btnHighscore.setOnClickListener(this); myActivity = getActivity(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: { if (v.findViewById(R.id.????) == null){ // ???? = ID des Laout von GameFragment Fragment game = Fragment.instantiate(myActivity, GameFragment.class.getName(), null); fragtrans = getActivity().getSupportFragmentManager().beginTransaction(); fragtrans.replace(R.id.container, game, null); // Backstack Löschen wenn notwendig // getActivity().getFragmentManager().popBackStack(); // fragtrans.addToBackStack(null); fragtrans.commit(); } break; } case R.id.btn_highscore: { break; } case R.id.btn_quit: { System.exit(0); break; } } } }
-
Hallo Simon.
Hezlich Wilkommen im Forum.
Das mit dem helfen wird schon werden.Viele Grüße Jörg
-
Wenn du das alles in der anderen Activity hast wie so gibst du das nicht weiter zu nächsten Activity. Oder Speicherst diese sachen in einer extra Klasse und gibt die instanz weiter oder die Klasse und variable ist static . Nutze die möglichkeiten die dir die objektorientierte Programmierung bietet.
-
@Ben Ich denke mit Fork meist du das Prinzip.
Ist das mit GitLab auch möglich?
Denke dazu brauche ich eine Gruppe bei giLab oder Organization bei gitHub?Für zwei oder maximal drei User würde es doch auch reichen wenn jeder einen eigenen Branch nutzt.
Zitat
Integration-Manager Workflow
Weil Git ermöglicht, eine Vielzahl von externen Repositories zu betreiben, ist es außerdem möglich, einen Arbeitsprozess zu gestalten, in dem jeder Entwickler Schreibzugriff auf sein eigenes öffentliches Repository hat, aber nur Lesezugriff auf die Repositories von allen anderen Beteiligten. In diesem Szenario stellt jedes Repository ein eigenes „offizielles“ Projekt dar. Um zu einem solchen distribuierten Projekt Änderungen beizusteuern, kannst Du einen eigenen, öffentlichen Klon des Projektes anlegen und Deine Änderungen dort publizieren. Anschließend kannst Du den Betreiber des Haupt-Repositories bitten, Deine Änderungen in sein Repository zu übernehmen. Er kann dann Dein Repository als ein externes Repository auf seinem Rechner einrichten, Deine Änderungen lokal testen, sie in einen seiner Branches (z.B. master) mergen und dann in sein öffentliches Repository pushen. Dieser Prozess läuft wie folgt ab (siehe Bild 5-2):- Der Projekt Betreiber pusht in ein öffentliches Repository.
- Ein Mitarbeiter klont das Repository und nimmt Änderungen daran vor.
- Der Mitarbeiter pusht diese in sein eigenes öffentliches Repository.
- Der Mitarbeiter schickt dem Betreiber eine E-Mail und bittet darum, die Änderungen zu übernehmen.
- Der Betreiber richtet das Repository des Mitarbeiters als ein externes Repository ein und führt die Änderungen mit einem seiner eigenen Branches zusammen.
- Der Betreiber pusht die zusammengeführten Änderungen in sein öffentliches Repository.
[Blockierte Grafik: https://git-scm.com/figures/18333fig0502-tn.png]
Bild 5-2. Integration-Manager Workflow -
Ben erstmal danke. Werde ich mir nochmal genauer anschauen.
Frage was ist ein Fork?Ob mein Remute repro prodected ist weiß ich nicht muss icht testen. Denke aber mal ja ist ja kostenlos.
Muss das mal mit einen Test Projekt durchspielen und mir einen zweiten User bei gitlab machen.
Was ist besser bei gitlab nur ein Projekt für zwei User oder eine Gruppe?
-
Ok wenn es läuft. Ist auf jedenfall ein neuer thread. Bin mir nicht sicher mit der refreshStates(); Methode denn die ist im thread in der run Methode.
Sieht eher so aus als ob der thred aller 2 sek läuft und somit deinen Code aller 2 sek ausführt, was am ende auf das selbe raus kommt. Wenn geht gut gemacht. -
dazu würde ich die Uhrzeit abfragen ist die Zeit um 2 sek fortgeschritten setzt du dein Datum. Passe auf das du den ui thread nicht zu lange belegst.
-
Wieso willst du das machen. Warte Schleifen sind nie sonderlich gut. Wenn dann in einen extra thread.
-
Hi habe gerade das hier gesehen.
alsodate = new Date(2000-1900,0,1);
musst du testen im Debugger.- A year y is represented by the integer y - 1900.
- A month is represented by an integer from 0 to 11; 0 is January, 1 is February, and so forth; thus 11 is December.
- A date (day of month) is represented by an integer from 1 to 31 in the usual manner.
- An hour is represented by an integer from 0 to 23. Thus, the hour from midnight to 1 a.m. is hour 0, and the hour from noon to 1 p.m. is hour 12.
- A minute is represented by an integer from 0 to 59 in the usual manner.