ListView und Arrays...

Jw456

Top Contributor
Du hast drei Arraylisten OK .

Ich würde es zwar anders machen eine „DatenKlasse“ in der alle drei Parameter gespeichert werden. Und diese dann in eine Liste packen.

Ok du Willst es mit drei Listen.
Bein erstellen der Liste was ist „applogo“ ?
Mit assList versucht du wohl ein Array in eine Liste zu speichern?

Es wird aber nur ein Element je Liste hinzugefügt.
Nur was ist input_app_name Ich denke EditText?


Du musst dir schon einen Custom ArrayAdapter erstellen.
Du hast momentan nur einen der eine deiner Listen benutzt.
 

wer112

Top Contributor
Du hast drei Arraylisten OK .

Ich würde es zwar anders machen eine „DatenKlasse“ in der alle drei Parameter gespeichert werden. Und diese dann in eine Liste packen.
Das hatte ich glaube ich mal gemacht(Der Code der von dir ist.) Das problem ist ja das ich keine Elemente hinzufügen kann. Weil das nur Strings Arrays benutzt. (Was funktioniert hatte). Ich muss ja das hinzufügen können und das ging irgendwie nur mit den List...
Ok du Willst es mit drei Listen.
Bein erstellen der Liste was ist „applogo“ ?
Wenn ein Entwickler eine neue App anlegt, wird ja erst nut der App Name, Package Name und das App Dammy Logo angelegt(+App Id). Das Logo ist ja das Bild von der App(Symbol...)
Mit assList versucht du wohl ein Array in eine Liste zu speichern?

Es wird aber nur ein Element je Liste hinzugefügt.
Nur was ist input_app_name Ich denke EditText?
Ja das ist EditText vom Dialog.
Du musst dir schon einen Custom ArrayAdapter erstellen.
Und dann kann ich alle drei Listen anzeigen lassen an der Richtigen position?
Wie macht man ein Custom Array Adapter?

Gibt es da was einfachen code?

Ich versuche ja das grade alles zu lernen und wie es ja funktioniert. Und das meiste ist ja nur einzeilig, die anderen funktionieren nicht(Die Views...)

Du hast momentan nur einen der eine deiner Listen benutzt.
ich habe mal das ausprobiert gehabt:

Java:
  String appname_edit = input_app_name.getText().toString().trim();
                        String packagename_edit = input_package_name.getText().toString().trim();
                        Toast.makeText(getActivity(), appname_edit, Toast.LENGTH_SHORT).show();

                        // App Id wird registriert



                        list_applogo.add(R.drawable.ks_logo);
                        list_appname.add(appname_edit);
                        list_packagename.add(packagename_edit);

                        // App Id Elemente werden um gespeichert und in Datenbank gespeichert

Da wird nur der PackageName in doie Zeile 2 geschrieben und die erste Zeile wird ignoriert.

Ich habe außerdem mal das probiert:

Java:
        ArrayAdapter<String> listeAdapter = new ArrayAdapter<>(
                getActivity(),
                R.layout.list_row_konsole,
                R.id.konsole_app_name_list,
                R.id.konsole_pack_name_list,
                list_appname,
                list_packagename);

      




        listView = (ListView)fragmentlayout_alle_apps_konsole.findViewById(R.id.listView);
        listView.setAdapter(listeAdapter);

Aber da wird das <> von new ArrayAdapter rot gekennzeichnet.
 

Jw456

Top Contributor
Java:
        ArrayAdapter<String> listeAdapter = new ArrayAdapter<>(
                getActivity(),
                R.layout.list_row_konsole,
                R.id.konsole_app_name_list,
                R.id.konsole_pack_name_list,
                list_appname,
                list_packagename);

  




        listView = (ListView)fragmentlayout_alle_apps_konsole.findViewById(R.id.listView);
        listView.setAdapter(listeAdapter);

Aber da wird das <> von new ArrayAdapter rot gekennzeichnet.

Das geht auch nicht.
Wenn du in die Doku schaust weißt du das es diesen Konstruktor zu ArrayAdapter nicht gibt.





Du musst dir selber einen Adapter schreiben das ist dann eine eigene Klasse die dann meist von ArrayAdapter erbt.

Ps ich habe dir mit Sicherheit keinen Code gegeben maximal einen Link der weiter helfen könnte.


Also schaue im Netz nach einem Custom ListView (Adapter) für android .
Natürlich sind das dann Beispiele um deine Funktionalität musst du dich dann schon selber kümmern. Das wirst du nicht fertig finden. Die links dienen dazu die Logik die dahinter steckt zu verstehen. Nicht einfach Copy Paste

 
Zuletzt bearbeitet:

Jw456

Top Contributor
Diesen Link hatte ich mal gegeben. "nur Link"
Ja da werden Arrays benutzt aber wo ist jetzt das Problem es auf ArrayListen umzustellen?
Dazu solltest du in der Lage sein. Ansonsten Grundlagen Java Listen anschauen.
 

wer112

Top Contributor
Diesen Link hatte ich mal gegeben. "nur Link"
Ja da werden Arrays benutzt aber wo ist jetzt das Problem es auf ArrayListen umzustellen?
Dazu solltest du in der Lage sein. Ansonsten Grundlagen Java Listen anschauen.
Ja das war der Link, den du mal gegeben hattest. Wenn du mal geschauen hat, benutzte er nur Strings Arrays. Was ich leider nicht benutzen kann.

Ich habe im Internet mal nach Custom List Java android gegoogelt, leider finde ich wenn nur Sachen mit Strings Arrays.

Ich habe auch versucht die List in ein String Array umzuwandeln, was auch nicht funktionierte.

Das mit den String Arrays, währe ja für das normale anzeigen der Apps für die Nutzer kein Problem, da es ja eine feste Array größe festgelegt ist...

Aber in der Entwickler Konsole darf ich kein String Array verwenden, da ich eine dynamische Liste brauche, wo der Entwickler seine Apps zur Liste hinzufügen kann.

Leider kann man kein .add() zu einem String Array machen, wo ja das Problem liegt. Und ich kann auch meine 3 Listen nicht an den Adapter Klasse(Wie im Link) übergeben, da es nur String Arrays funktionieren.
 

Jw456

Top Contributor
Wenn es dir nicht möglich ist den link den damals und heute gegeben habe auf Arraylisten umzuschreiben. Würde ich sagen dann lernne erstmal java Grundlagen.

Der zweite link von heute benutz eine Liste mit einem Daten Model.

Und du findest keine Code Beispiel im Netz.
 

Jw456

Top Contributor
So hier der Code aus dem Link mit den drei Arrays als Listen.

Das ist eigentlich eine einfache Anfänger Übung in Java. Einen Code der ein Array benutzt in Arraylist zu bringen. Wenn du so etwas nicht kannst solltest du erst mal Java Grundlagen lernen bevor du mit Android weiter machst.
Wie du nun das in deine Logik mit deinen Listen bringst ist deine Sache dabei werde ich dir nicht helfen.

Java:
public class MainActivity extends AppCompatActivity {

    ListView list;

    /*String[] maintitle ={
            "Title 1","Title 2",
            "Title 3"
    };
    String[] subtitle ={
            "Sub Title 1","Sub Title 2",
            "Sub Title 3"
    };
    Integer[] imgid={
            R.drawable.download_1,R.drawable.download_2,
            R.drawable.download_3
    };*/

    ArrayList maintitle = new ArrayList<String>();
    ArrayList subtitle = new ArrayList<String>();
    ArrayList imgid = new ArrayList<Integer>();

    void setMyLists(){
        maintitle.add("Title1");
        maintitle.add("Title2");
        maintitle.add("Title3");

        subtitle.add("Sub Title 1");
        subtitle.add("Sub Title 2");
        subtitle.add("Sub Title 3");

        imgid.add(R.drawable.download_1);
        imgid.add(R.drawable.download_2);
        imgid.add(R.drawable.download_3);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setMyLists();

        MyListAdapter adapter=new MyListAdapter(this, maintitle, subtitle,imgid);
        list=(ListView)findViewById(R.id.list);
        list.setAdapter(adapter);


        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                if(position == 0) {
                    //code specific to first list item
                    Toast.makeText(getApplicationContext(),"Place Your First Option Code",Toast.LENGTH_SHORT).show();
                }

                else if(position == 1) {
                    //code specific to 2nd list item
                    Toast.makeText(getApplicationContext(),"Place Your Second Option Code",Toast.LENGTH_SHORT).show();
                }

                else if(position == 2) {

                    Toast.makeText(getApplicationContext(),"Place Your Third Option Code",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

Java:
public class MyListAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private ArrayList maintitle ;
    private ArrayList subtitle ;
    private ArrayList imgid ;

    public MyListAdapter(Activity context, ArrayList<String> maintitle, ArrayList<String> subtitle, ArrayList<Integer> imgid) {
        super(context, R.layout.mylist, maintitle);
        // TODO Auto-generated constructor stub

        this.context = context;
        this.maintitle = maintitle;
        this.subtitle = subtitle;
        this.imgid = imgid;

    }

    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.mylist, null, true);

        TextView titleText = (TextView) rowView.findViewById(R.id.title);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        TextView subtitleText = (TextView) rowView.findViewById(R.id.subtitle);

        titleText.setText(maintitle.get(position).toString());
        imageView.setImageResource((Integer) imgid.get(position));
        subtitleText.setText(subtitle.get(position).toString());

        return rowView;
    };
}
 
Zuletzt bearbeitet:

temi

Top Contributor
Java:
    ArrayList maintitle = new ArrayList<String>();
    ArrayList subtitle = new ArrayList<String>();
    ArrayList imgid = new ArrayList<Integer>();

Rohtypen sollten nicht verwendet werden!

Besser:
Java:
    ArrayList<String> maintitle = new ArrayList<String>();
    ArrayList<String> subtitle = new ArrayList<String>();
    ArrayList<Integer> imgid = new ArrayList<Integer>();

// bzw. noch besser mit dem Interface

    List<String> maintitle = new ArrayList<String>();
    List<String> subtitle = new ArrayList<String>();
    List<Integer> imgid = new ArrayList<Integer>();

// oder kürzer

    List<String> maintitle = new ArrayList<>();
    List<String> subtitle = new ArrayList<>();
    List<Integer> imgid = new ArrayList<>();
 

Jw456

Top Contributor
Java:
ArrayList<String> maintitle = new ArrayList<>();
ArrayList<String> subtitle = new ArrayList<>();
ArrayList<Integer> imgid = new ArrayList<>();

gut dann eben so
 
K

kneitzel

Gast
gebe mir bitte einen Grund Beispiel warum RohTypen nicht verwendet werden sollten.
Wenn Du gegen Interfaces entwickelst, dann hast Du keine feste Abhängigkeit zu der konkreten Implementierung. Dadurch kann die konkrete Implementierung z.B. jederzeit gewechselt werden.

Edit: Mit "Rohtypen" war das Weglassen des Generics gemeint: Du verlierst die Typsicherheit. Wenn Du einfach nur eine ArrayList hast, dann kannst Du da alles rein packen. Aber Du willst ja eine List mit speziellen Inhalt. Daher wurde mit Java 1.5 Generics eingeführt.

Edit2: Typo korrigiert
 
K

kneitzel

Gast
Ja ArrayList ist für mich kein Interface.
Daher das Edit, das ich gemacht habe. Es geht um eine Typsicherheit. In eine ArrayList<String> kannst Du nur Strings packen, in eine ArrayList<Integer> nur Integer. In eine ArrayList kannst Du alles packen und entsprechend kannst Du zur Laufzeit Probleme bekommen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ListView Item individuell einfärben Android & Cross-Platform Mobile Apps 17
I Android ListView, Werte aktualisieren ohne die Liste komplett neu zu laden Android & Cross-Platform Mobile Apps 5
W ListView OnItemClicklistener setzen mit Ausgabe Android & Cross-Platform Mobile Apps 35
K Null-Pointer-Exception in ListView - wird über Datenbank gefüllt Android & Cross-Platform Mobile Apps 1
I Android ListView (Custom) soll auf Hardwaretasten nicht reagieren. Android & Cross-Platform Mobile Apps 10
W Android Wieso kann ich keine ListView mehr zum Layout hinzufügen? Android & Cross-Platform Mobile Apps 1
W Android Kann keine ListView mehr in der MainActivtiy anzeigen, obwohl noch sehr viel Platz frei ist Android & Cross-Platform Mobile Apps 1
L ListView aktuallisiert sich nicht Android & Cross-Platform Mobile Apps 15
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
L Android ListView kollabiert in Scrollview Android & Cross-Platform Mobile Apps 9
A ImageButton in ListView Item bei klick ändern Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
H Android ArrayList <-> ArrayAdapter <-> ListView Android & Cross-Platform Mobile Apps 10
L Android ListView swipe zum löschen Android & Cross-Platform Mobile Apps 1
B Android ListView set custom check Image and delete Android & Cross-Platform Mobile Apps 0
M Android ListView wird nicht dargestellt Android & Cross-Platform Mobile Apps 2
Maresuke Android Android ListView Textfarbe und Texthintergrund ändern? Android & Cross-Platform Mobile Apps 5
A Android Problem mit ListView und OnItemClickListener.. Android & Cross-Platform Mobile Apps 10
S Listview Einträge aus "xml" Datei Android & Cross-Platform Mobile Apps 1
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
S Textdatei in ListView einlesen Tutorial gesucht!? Android & Cross-Platform Mobile Apps 3
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
M Android ListView und Checkbox Android & Cross-Platform Mobile Apps 6
L TableRows in ListView darstellen Android & Cross-Platform Mobile Apps 2
M ListView mit ListAdapter füllen Android & Cross-Platform Mobile Apps 5
U Android ListView Frage Android & Cross-Platform Mobile Apps 6
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
H Android ListView Images aus dem Internet via Thread Android & Cross-Platform Mobile Apps 3
T Android: ListView-Adapter: Adapter wird ständig aufgerufen Android & Cross-Platform Mobile Apps 2
H Android SAX|ListView NullPointerException Android & Cross-Platform Mobile Apps 2
A Probleme mit ListView / ArrayAdapter Android & Cross-Platform Mobile Apps 3
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
B Fragen zu Arrays? Android & Cross-Platform Mobile Apps 9

Ähnliche Java Themen

Neue Themen


Oben