Brauche Hilfe (XML Android Layout)

  • Antworten:13
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 14

25.07.2013, 00:22:27 via Website

Servus,
ich bin gerade dabei Java bzw. die Android SDK zu lernen.
Ich habe mir gleich mein 1. Projekt gesetzt, ein Soundboard.
Das Soundboard selber sollte kein Problem darstellen, nur eher das XML Template.
Hab mich noch nicht wirklich beschäftigt und ich krieg das auch nicht in meinem Kopf rein.
Also: Ein guter Kollege hat mit HTML/CSS/Javascript eine Vorlage gebastelt, wie die App ca. aussehen soll.
Ich kriege das irgendwie nicht hin.
Am besten sollte alles in einer Listview laufen, nur krieg ich das nicht hin.
Hier das Template: www.iklikla.pf-control.de/GRONKH.de%20Soundboard/
Kann mir da eventuell jemand helfen? (nein ich möchte nicht, dass jemand mir das komplett macht)
Höchstens das mit der Listview krieg ich nicht hin, die Actionbar müsste relativ leicht zu lösen sein.

Hoffe in diesem Forum ist einer dabei, der mir hilft und nicht nur dumme Kommentare abgibt.
Schonmal vielen dank im Vorraus! :)

Antworten
  • Forum-Beiträge: 206

25.07.2013, 06:29:22 via App

Also wenn ich das richtig verstanden habe, hast du Probleme mit den einzelnen Items des ListViews? Falls ich falsch liege, wäre eine genauere Erklärung hilfreich. :)

Ein ListView-Item bekommst du folgendermaßen hin:

Zum Festlegen des Items nutze einen CustomAdapter (extends BaseAdapter)

Das Layout für ein ListView-Item:

1<!--Für den Abstand zwischen den Items-->
2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3layout_width="fill_parent"
4layout_heigth="wrap_content"
5padding="7.5dp" >
6
7<LinearLayout
8android:layout_width="fill_parent"
9android:layout_heigth="wrap_content"
10android:orientation="horizontal"
11android:padding="5dp"
12android:background="@drawable/BACKGROUND" >
13
14<ImageView
15android:id="@+id/image"
16android:layout_width="wrap_content"
17android:layout_heigth="fill_parent"
18android:gravity="center"
19<!--Um das Bild zu skalieren, wenn es zu groß / klein ist-->
20android:scaleType="fitCenter" />
21
22<LinearLayout
23android:layout_width="fill_parent"
24android:layout_heigth="fill_parent"
25android:paddingLeft="5dp"
26android:orientation="vertical" >
27
28<TextView
29android:id="@+id/title"
30android:layout_width="fill_parent"
31android:layout_heigth="wrap_content"
32android:singleLine="true"
33<!--Um den Text später fett zu machen, nutz einen SpannableString--> />
34
35<TextView
36android:layout_width="fill_parent"
37android:layout_heigth="wrap_content"
38android:id="@+id/artist"
39android:singleLine="true" />
40
41</LinearLayout>
42
43</LinearLayout>
44
45</RelativeLayout>

LG

— geändert am 25.07.2013, 06:30:29

K3bo

Antworten
  • Forum-Beiträge: 14

25.07.2013, 13:33:11 via Website

Genau, ich meine die einzelnen Items der Listview.
Nur die Frage ist, in welcher XML muss ich das einfügen?
Irgendwo muss man doch auch die Listview "verlinken" oder nicht?

Antworten
  • Forum-Beiträge: 307

25.07.2013, 14:45:09 via Website

Hi K3bo,

Irgendwo muss man doch auch die Listview "verlinken" oder nicht?

Dieses "verlinken" geschieht über den Adapter.
Schau dir mal dieses Tut von Lars Vogel an, es beschreibt recht ausführlich wie du eine ListView mit eigenem Layout umsetzt.

Mfg Christian

— geändert am 25.07.2013, 14:45:36

K3bo

Antworten
  • Forum-Beiträge: 14

25.07.2013, 21:26:09 via Website

Ich versteh das noch nicht ganz ^.^
Hat eventuell jemand Skype? Wäre ganz cool wenn ich jemanden hätte, den ich dann direkt fragen kann, wenn ich Fragen/Probleme habe. :)
Falls ja, könnt ihr mich hier adden: kebo_x3

Danke an alle. :)

Antworten
  • Forum-Beiträge: 14

25.07.2013, 21:39:51 via Website

Also, mein Ziel ist es ja, wie beim "App-Layout", das im Startpost steht, eine Listview mit mehreren Items zu erstellen.
Dieses Item sollte halt aus einem Bild (play button) und einem Text bestehen.
Wenn man dieses Item anklickt, soll ein Sound abgespielt werden und das play button Bild, soll sich in ein "Pause-Button" umändern.

Nur kriege ich das irgendwie nicht so ganz hin bzw. verstehe nicht, wie man die einzelnen Items bearbeiten kann.

— geändert am 25.07.2013, 21:40:49

Antworten
  • Forum-Beiträge: 206

25.07.2013, 22:13:39 via App

1public class CustomAdapter extends BaseAdapter
2
3private ArrayList<CustomClassItem> data;
4private Context c;
5
6public CustomAdapter(Context c, ArrayList<CustomClassItem> data){
7this.c = c;
8this.data = data;
9}
10
11public int getCount() {
12retur data.size ();
13}
14
15public CustomClassItem getItem(int position) {
16return data.get (position);
17}
18
19public long getItemId (int position) {
20return position;
21}
22
23public View getView (int position, View conv, ViewGroup parent) {
24View v = conv;
25
26if (v == null) {
27v = ((LayoutInflater) c.getSystemService (Context.LAYOUT_INFLATER_SERVICE).inflate (R.layout.XML_LAYOUT, null);
28}
29
30CustomClassItem edit = data.get (position);
31
32//Layout definieren und z. B. auf OnClickListener setzen
33
34//z. B. :
35final ImageView iv = (ImageButton) v.findViewById (R.id.image);
36iv.setImageResource (R.drawable.NOT_PLAYING);
37iv.setOnClickListener (new OnClickListener () {
38iv.setImageResource (Player.isPlaying () ? R.drawable.IS_PLAYING : R.drawable.NOT_PLAYING);
39});
40
41return v;
42}

LG

Antworten
  • Forum-Beiträge: 14

25.07.2013, 22:30:19 via Website

Ich krieg das net hin^^
Bei mir sind da ein Haufen voller Errors, die ich auch teilweise nicht ganz verstehe.

Antworten
  • Forum-Beiträge: 14

25.07.2013, 23:01:15 via Website

Also, in der Logcat wird mir nichts angezeigt.
Ich markiere die Error's einfach mal dick und unterstrichen.

1public class CustomAdapter extends BaseAdapter
2
3private ArrayList<CustomClassItem> data;
4private Context c;
5
6public CustomAdapter(Context c, ArrayList<CustomClassItem> data){
7this.c = c;
8this.data = data;
9}
10
11public int getCount() {
12retur data.size ();
13}
14
15public CustomClassItem getItem(int position) {
16return data.get (position);
17}
18
19public long getItemId (int position) {
20return position;
21}
22
23public View getView (int position, View conv, ViewGroup parent) {
24View v = conv;
25
26if (v == null) {
27v = ((LayoutInflater) c.getSystemService (Context.LAYOUT_INFLATER_SERVICE).inflate (R.layout.XML_LAYOUT, null);
28}
29
30CustomClassItem edit = data.get (position);
31
32//Layout definieren und z. B. auf OnClickListener setzen
33
34//z. B. :
35final ImageView iv = (ImageButton) v.findViewById (R.id.image);
36iv.setImageResource (R.drawable.NOT_PLAYING);
37iv.setOnClickListener (new OnClickListener () {
38iv.setImageResource
(Player.isPlaying () ? R.drawable.IS_PLAYING : R.drawable.NOT_PLAYING);
39});
40
41return v;
42}

Bin echt planlos.^.^

— geändert am 25.07.2013, 23:03:12

Antworten
  • Forum-Beiträge: 206

25.07.2013, 23:52:51 via App

Bei LAYOUT_INFLATER_SERVICE fehlt eine Klammer direkt dahinter.

Bei OnClickListener versuch mal, des zu importieren. Wenn das nicht geht, mach "new View.OnClickListener ()" daraus.

CustomClassItem ist eine Klasse, in die du z. B. ein Bild deines Sounds, den Titel, "Interpreten", und den Sound selbst lädst.
z. B.:
1public class CustomItem {
2public String title;
3public String artist;
4public MediaPlayer songInPlayer;
5public Bitmap image;
6}

Bei R.layout.XML_LAYOUT musst du das layout, das ich vorher gepostet habe, wählen. wenn du es z. B. als main_l.xml gespeichert hast, schreibe "R.layout.main_l"

Im Bereich bei "//Layout definieren ..." musst du einfach die einzelnen Views aus deiner Xml-Datei per Id suchen (v.findViewById ()) und diesen z. B. Text und Bild festlegen.
Wenn du z. B. in deinem Layout main_l.xml (siehe oben) einen ImageView mit der Id "image" hast, erhällst du ihn mit: ImageView imageV = (ImageView)v.findViewById(R.id.image);
Um diesem Beispiel dann ein Bild zuzuweisen, mache folgendes:
imageV.setImageResource(R.drawable.IRGENDEIN_BILD);

LG

— geändert am 25.07.2013, 23:57:44

Antworten
  • Forum-Beiträge: 14

26.07.2013, 00:06:13 via Website

Die XML scheint auch ein wenig fehlerhaft zu sein.
Hast du eventuell Teamviewer? Dann könnte ich dir eben per pN meine Daten rübergeben.

Antworten

Empfohlene Artikel