Android Eclipse ADT, unabhängigen string auf jeder seite

03/22/2014 00:43 Dubbie2011#1
Hey Leute,
wollte mich mal wieder an Android probieren, doch es scheitert schon recht früh..

Ich möchte gerne eine app schreiben die einen source code einer URL in "einzelteile" zerlegt und in strings speichert und dann angibt

ich dachte dass der viewpager ein schönes preset dafür wäre und habe es benutzt, mein problem ist jetzt aber folgendes..

Code:
@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main_dummy, container, false);
            TextView dummyTextView = (TextView) rootView.findViewById(R.id.section_label);
            dummyTextView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)));
            return rootView;
        }
da steht ja quasi drinnen, dass das label auf jeder slide immer nur = seitenzahl ist

wie richte ich es so ein, dass für seite1 text1 und seite2 text2 (bzw der string halt) kommt usw

ich hab zuerst an eine switch gedacht, aber irgendwie kann ich mir das nichteinmal vorstellen!?


Ich danke euch jetzt schon für jede hilfreiche antwort und über anfängerfreundliche und !verständliche! weblinks

@Wenn ich das viewpager preset benutze, kann ich dann noch jede einzelne slide scrollbar machen?

Mit freundlichen Grüßen

€: hab mich grade selber nochmal dran versucht, aber iwie..

[Only registered and activated users can see links. Click Here To Register...]


€2: bin mir wahrscheinlich bewusst, dass 3 mal dummyTextView mit 3 mal verschiedenen strings nicht gehen wird, aber vom grundsatz her..

€4: kann es sein, dass ich im mPageAdapter verschiedene Fragmente angeben muss um das problem zu lösen?
03/22/2014 01:50 ​Tension#2
Wieso liest du nicht den Error-Log?
Da steht doch das die Klammern fehlen.

Code:
if (getArguments().getInt(ARG_SECTION_NUMBER) == 0 ) {
            		dummyTextView.setText(getString(R.string.seite0)); } else if
             (getArguments().getInt(ARG_SECTION_NUMBER) == 1 )  {
        		dummyTextView.setText(getString(R.string.seite1)); } else if
             (getArguments().getInt(ARG_SECTION_NUMBER) == 2 ) {
        		dummyTextView.setText(getString(R.string.seite2)); }
Hab die überflüssigen Klammern am Anfang der If-Abfrage entfernt.
03/22/2014 18:47 Dubbie2011#3
Quote:
Originally Posted by Ten$ion View Post
Wieso liest du nicht den Error-Log?
Da steht doch das die Klammern fehlen.

Code:
if (getArguments().getInt(ARG_SECTION_NUMBER) == 0 ) {
            		dummyTextView.setText(getString(R.string.seite0)); } else if
             (getArguments().getInt(ARG_SECTION_NUMBER) == 1 )  {
        		dummyTextView.setText(getString(R.string.seite1)); } else if
             (getArguments().getInt(ARG_SECTION_NUMBER) == 2 ) {
        		dummyTextView.setText(getString(R.string.seite2)); }
Hab die überflüssigen Klammern am Anfang der If-Abfrage entfernt.
Wow vielen Dank!

ich war nur verwirrt weil in der Fehlermeldung "insert ") Statement"" stand und ich nicht wusste was das "Statement" sollte..

mittlerweile musste ich auf Android Studio umsteigen, weil mein adb server nicht mehr unter Eclipse starten wollte

Dabei bin ich auch gleich auf den Navigation Drawer style umgestiegen und konnte den code erfolgreich anpassen

ich habe jetzt die navigationdrawer einträge aus dem preset übernommen, umbenannt und angepasst und durch deinen korrigierten code funktioniert es jetzt auch richtig

ich habe zunächst gedacht, dass es einfacher wäre 3 fragmente für insgesamt 3 seiten zu erstellen und durch einen druck auf die einträge darauf zu verweisen, aber mit den 5 Zeilen code passt das wohl schon..


jetzt kommt meine nächste frage..

Mein ziel ist es den Quellcode einer internetseite in einem string zu speichern und dann zu unterteilen, um es besser ausgeben zu können

dazu habe ich schon mal einen Thread erstellt, [Only registered and activated users can see links. Click Here To Register...]


mir wurde schon eine methode gepostet, aber ich hätte eine frage:

wie würde der text nach der zerlegung aussehen? Wie könnte man ihn ansehnlich darstellen? Werde ich immer noch nur einen string haben, nachdem alles zerlegt wurde?
03/22/2014 19:00 ​Tension#4
Der Code von XxharCs spaltet den String immer wenn das Zeichen "|" vorkommt und packt diese Abspaltung dann in ein String-Array.

Code:
String str_text = "Hallo|wie|gehts";
String[] str_splittext = text.split("[|]+");
str_splittext hätte dann die Einträge:
Code:
str_splittext[0] = "Hallo";
str_splittext[1] = "wie";
str_splittext[2] = "gehts";
hoffe das du das verstehst. Was ich aber vermute das du einzelne Teile gerne haben möchtest dafür solltest du eine StringBetween-Funktion schreiben.
03/22/2014 20:06 Dubbie2011#5
Quote:
Originally Posted by Ten$ion View Post
Der Code von XxharCs spaltet den String immer wenn das Zeichen "|" vorkommt und packt diese Abspaltung dann in ein String-Array.

Code:
String str_text = "Hallo|wie|gehts";
String[] str_splittext = text.split("[|]+");
str_splittext hätte dann die Einträge:
Code:
str_splittext[0] = "Hallo";
str_splittext[1] = "wie";
str_splittext[2] = "gehts";
hoffe das du das verstehst. Was ich aber vermute das du einzelne Teile gerne haben möchtest dafür solltest du eine StringBetween-Funktion schreiben.
ich glaube die methode würde sich auch super anbieten.

Falls du in den Thread von davor reingesehen hast (was ich stark vermute), dann hast du vielleicht auch gesehen wie der text hätte sortiert werden müssen



könnte man jetzt einen counter verwenden und ihm sagen, dass er nach dem ersten, 6ten split eine neue reihe machen soll?

Könnte man die informationen evtl in eine tabelle setzen? wenn ich bei google nach tables suche finde ich nur das tablelayout, aber es will bei mir nicht wirklich funktionieren (also <TableRow/> usw), aber ich glaube ich verwende es einfach falsch


irgendwelche vorschläge für das sinnvolle anzeigen der informationen?

Und wie mache ich mein fragment_main scrollbar? einfach die scrollview in die xml reinschreiben?

Vielen dank für deine antworten!
03/22/2014 20:37 ​Tension#6
Ja das ist möglich, jeder Block ( "|Dienstag, 4.2.2014|04|LA|5A|M|A213|ES|Statt Mo 6" )
hat ja eine bestimmte Anzahl an Einträgen ( 8 ) und dann lässt du eine Schleife durchlaufen welche die Einträge liest und weiterverarbeitet.

könnte so aussehen ( Tut mir leid wenn es Fehler beinhaltet ich programmiere nicht mit Java ):
Code:
String str_text = "Dienstag, 4.2.2014|04|LA|5A|M|A213|ES|Statt Mo 6|5|LA|5A|M|A213|FA||";
String str_entry = ""; 
String[] str_splittext = text.split("[|]+");
String[] str_blocks; 
int n_entries = 8; 
int n_count = str_splittext.lengt / n_entries; 
for(int i = 0; i < n_count; i++)
{
	for(int j = 0; j < n_entries; j++)
	{
		str_entry += "-" + str_splittext[(i*n_entries)+j];  //Musst du anpassen.
	}
	str_blocks.append(str_entry);
	str_entry = "";
}

//Ausgeben:
for(int i = 0; i < n_count; i++)
{
	System.out.println(str_blocks[i]);
}

//Output:
//-Dienstag, 4.2.2014-04-LA-5A-M-A213-ES-Statt Mo 6
//-5-LA-5A-M-A213-FA-
Das müsstest du nur anpassen. Hoffe das du verstehst was ich meine.

Zu deinem Problem mit dem Table hab ich das gefunden:
[Only registered and activated users can see links. Click Here To Register...]

Zu der Scrollbar hab ich das hier:
[Only registered and activated users can see links. Click Here To Register...]
03/23/2014 01:40 Dubbie2011#7
Quote:
Originally Posted by Ten$ion View Post
Ja das ist möglich, jeder Block ( "|Dienstag, 4.2.2014|04|LA|5A|M|A213|ES|Statt Mo 6" )
hat ja eine bestimmte Anzahl an Einträgen ( 8 ) und dann lässt du eine Schleife durchlaufen welche die Einträge liest und weiterverarbeitet.

könnte so aussehen ( Tut mir leid wenn es Fehler beinhaltet ich programmiere nicht mit Java ):
Code:
String str_text = "Dienstag, 4.2.2014|04|LA|5A|M|A213|ES|Statt Mo 6|5|LA|5A|M|A213|FA||";
String str_entry = ""; 
String[] str_splittext = text.split("[|]+");
String[] str_blocks; 
int n_entries = 8; 
int n_count = str_splittext.lengt / n_entries; 
for(int i = 0; i < n_count; i++)
{
	for(int j = 0; j < n_entries; j++)
	{
		str_entry += "-" + str_splittext[(i*n_entries)+j];  //Musst du anpassen.
	}
	str_blocks.append(str_entry);
	str_entry = "";
}

//Ausgeben:
for(int i = 0; i < n_count; i++)
{
	System.out.println(str_blocks[i]);
}

//Output:
//-Dienstag, 4.2.2014-04-LA-5A-M-A213-ES-Statt Mo 6
//-5-LA-5A-M-A213-FA-
Das müsstest du nur anpassen. Hoffe das du verstehst was ich meine.

Zu deinem Problem mit dem Table hab ich das gefunden:
[Only registered and activated users can see links. Click Here To Register...]

Zu der Scrollbar hab ich das hier:
[Only registered and activated users can see links. Click Here To Register...]
Okay danke für die Antwort!


ich habe es geschafft mein layout scrollbar zu machen, danke dafür, aber bevor ich jetzt weiter mit dem Design meiner App mache bleibt eine andere sehr wichtige frage offen..

ich schaffe es einfach nicht vernünftig code zu implementieren der es mir erlaubt den source code einer URL abzufangen

immer wenn ich ihn einfüge, kriege ich "unerklärliche fehler" (was evtl daran liegt, dass die fragen und dadurch die verwendeten APIs älter waren)


ist es eine gute idee die quellcode abfrage in die onCreate() methode zu packen?, mir ist bewusst dass sie dann jedes mal ausgeführt wird wenn das layout quasi geladen wird.. andere lösungsvorschläge gerne gesehen!

€: Meine Frage: ich brauch nur einen code der es mir erlaubt einen quellcode in einem string zu speicher, die methode zum trennen hast du oben ja dann schon angegeben.. Ich habe schon wochenlang google danach durchforstet, aber wie gesagt.. nichts hat wirklich funktioniert..
03/23/2014 02:28 ​Tension#8
Du könntest es beim App-Start machen und einen Refresh-Button hinzufügen ( oder wie bei FaceBook o.ä das man einfach weiter ziehen muss und dann wird es neu geladen ), oder einen Timer welche den Context alle ~5min updated. Deine Methode kann man auch verwenden jedoch würde das glaub ich ziemlich Daten fressen.

Für WebRequests:
[Only registered and activated users can see links. Click Here To Register...]
03/23/2014 18:38 Dubbie2011#9
Quote:
Originally Posted by Ten$ion View Post
Du könntest es beim App-Start machen und einen Refresh-Button hinzufügen ( oder wie bei FaceBook o.ä das man einfach weiter ziehen muss und dann wird es neu geladen ), oder einen Timer welche den Context alle ~5min updated. Deine Methode kann man auch verwenden jedoch würde das glaub ich ziemlich Daten fressen.

Für WebRequests:
[Only registered and activated users can see links. Click Here To Register...]
hab jetzt gelesen, dass seit android 4.3 alles in einem gesonderten thread stattfinden muss, aber das verstehe ich jetzt überhaupt nicht mehr..

Ich werde zu diesem zweck einen neuen Thread erstellen, weil die leute hier nicht mehr reingucken werden um mir diese Frage zu beantworten, danke nochmal für alles und kannst mir evtl weiter helfen