[ERLEDIGT] Eine art Dropbox

N

N3cron

Fortgeschrittenes Mitglied
1
Hallo zusammen. Ich nenne das Thema mal so und hoffe ich kann mein Problem erklären.
Ich habe einen ftp server mit einem Verzeichnis. In dieses Verzeichnis sollen user fotos hochladen.
Beispiel 1-abc.jpg

Nun zum Problem.
Ftp Verbindung hergestellt. Verzeichnis wird heruntergeladen und im Download Verzeichnis abgelegt.
Das alles funktioniert.

Problem was ich nun habe. Ich habe nun Fragmente zb 1 2 3
Nun soll abgefragt werden wie die datei heisst. Auch das habe ich hinbekommen,und habe sie gesplittet.

Wie lasse ich nun meine app automatisch einen Button erzeugen, der die 1 in reiter 1 ablegt.
Abc soll dann der button heissen
Zb webview soll dann bei onclick automatisch die richtige 1-abc.jpg öffnen und anzeigen

Wie kann man so etwas machen?
 
Hallo n3cron,

so ganz habe ich dein "Problem" noch nicht verstanden.

Allerdings kannst du zur Laufzeit dir Buttons erstellen und sie einem ViewContainer mit AddView hinzufügen ..
Ist da dein Problem ??
 
Ok. Ist auch schwer zu erklären. Lassen wir mal ftp usw alles weg.

Ich habe einen ordner in dem jpg Dateien hochgeladen werden können. Beim app start überprüft die App ob es neue dateien gibt. Die dateien sollen alle mit 1- oder 2- oder 3- anfangen. 1,2,3 ist die Kategorie. Dahinter wie die datei heissen soll(so soll dann auch der Button heissen). Zb auto. Button soll sich selbst erzeugen / sichtbar machen und den namen annehmen. Bei onclick button soll er dann die zb 1-auto.jpg aufrufen und anzeigen.
Nachvollziehbar?
 
Ja , nachvollziehbar ..

Du möchtest also zur Laufzeit Buttons erstellen , diesen einen entsprechenden Text / Url zuweisen und
in deren ClickEvent den WebView mit der entsprechenden Url aufrufen ..

Habe ich es jetzt ? :)
 
Ja genau. Mein Problem, das muss der Button ja alles selbst machen. Wie stellt man sowas an? Also den namen habe ich gesplittet. Server holt such auch die neuen daten. Das alles funktioniert. Möchte halt nicht bei jeder datei die hochgeladen wird ne neue apk erstellen müssen. Die user sollen so gesehen alle immer den aktuellsten Stand haben sobald sich auf dem server was tut
 
Du musst erst mal den Button zur Laufzeit erstellen und nicht im Layout.
Wenn der dann erstellt ist , musst du ihm deinem Layout hinzufügen.

Add button to a layout programmatically


Diesem Button weist du dann einen ClickListener zu und vergibst ihm dann noch z.b mit setTag die URL.
Innerhalb des ClickListener nimmst du dir dann wieder mit getTag die Url und kannst dann dein Image anzeigen ( wo auch immer )
 
Ok. Vielen Dank. Das sollte ich hinbekommen. Ich hoffe du hast recht :p
Hast du sowas schon mal gemacht und evtl ein wenig code Schnipsel für mich?
 
Super. Vielen vielen Dank
 
Hi. Da bin ich doch nochmal. Ich habe soweit alles hinbekommen. Leider und da finde ich bisher keine Lösung, bekomme ich bei vielen Button´s (als Test) kein Scroll hin.

Hier mal der Code. Ich hoffe ihr koennt mir da helfen. Seht es mir bitte nach wenn es nicht so dolle programmiert ist. Ich bin noch nicht so gut darin. Vieleicht geht einiges einfacher, aber bisher funktioniert es so wie ich es brauche


@override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(ice1, container, false);

LinearLayout ll = new LinearLayout(getActivity());

ll.setOrientation(LinearLayout.VERTICAL);
ll.setBackgroundColor(Color.parseColor("#ffffff"));

ll.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));


RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,80);
params.leftMargin = 30;
params.rightMargin = 30;


ll.addView(v, params);

v = ll;


if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {

File file = new File(Environment.getExternalStorageDirectory() + "/Download/SchlauesBuch/");
if (file.isDirectory()) {
File list[] = file.listFiles();

for (int i = 0; i < list.length; i++) {

List<String> myLists = (Arrays.asList(list.getName().split("-")));
List<String> myListss = (Arrays.asList(list.getName().split("\\.jpg")));
List<String> myListsss = (Arrays.asList(myListss.get(0).split("-")));

first = myLists.get(0); //ice1
second = myLists.get(1); //roserviert.jpg
third = myListsss.get(1); //roserviert

one = new Button(getActivity());
one.setText(third);
one.setBackgroundColor(Color.parseColor("#cccaca"));
one.setGravity(Gravity.CENTER_HORIZONTAL);
one.setLayoutParams(params);
one.setOnClickListener(null);
ll.addView(one);

}

one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
one = (Button) v;
// one.setBackgroundColor(Color.parseColor("#2980b9"));

}
});

}
}
return v;
}

public static ICE1 newInstance(String text) {

ICE1 f = new ICE1();
Bundle b = new Bundle();
b.putString("FragmentSystemInfo", text);

f.setArguments(b);

return f;
}

}
 
Hab es hinbekommen. Trotzdem Danke
 

Ähnliche Themen

R
Antworten
4
Aufrufe
726
Rapidoman
R
H
Antworten
2
Aufrufe
1.307
Hcman
H
Zurück
Oben Unten