1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Hilfe! Liste in einer Activity generieren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Chri, 27.08.2009.

  1. Chri, 27.08.2009 #1
    Chri

    Chri Threadstarter Gewerbliches Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    0
    Registriert seit:
    27.08.2009
    Phone:
    Nexus 4
    Hallo Leute!

    Ich bin gerade am Verzweifeln:confused:! Ich steh vor einem Probelm, dass ich unbedinkt lösen möchte!

    Mein Code ist Folgender:
    im .java file:


    package com.example.HelloListView;

    import android.app.Activity;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.TextView;


    public class HelloListView extends Activity {
    /** Called when the activity is first created. */

    private TextView info;
    private ListActivity list;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.main);


    list.setListAdapter(new ArrayAdapter<String> (list,android.R.layout.simple_expandable_list_item_1, COUNTRIES));
    info = (TextView) findViewById(R.id.meinInfo);
    }

    public void onListItemClick(ListView l, View v, int position, long id)
    {
    info.setText(COUNTRIES[(int) id]);

    }
    static final String[] COUNTRIES = new String[] {
    "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
    "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
    "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
    "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
    "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
    "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil","British Indian Ocean Territory",
    "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
    "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
    "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
    "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
    "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
    "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
    "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
    "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
    "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
    "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
    "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
    "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
    "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
    "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
    "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
    "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
    "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
    "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
    "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
    "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
    "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
    "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
    "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
    "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
    "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
    "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
    "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
    "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
    "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
    "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
    "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
    "Ukraine", "United Arab Emirates", "United Kingdom",
    "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
    "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
    "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
    };

    }


    und mein main.xml file:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="320px"
    />
    <TextView
    android:id="@+id/meinInfo"
    android:layout_width="fill_parent"
    android:layout_height="50px"
    android:background="#FFFFFF"
    android:textSize="16px"
    android:textColor="#000000"
    android:text="Start" />
    </LinearLayout>


    Mein Probelm ist, dass das Programm ausführbar ist aber am Gerät selbst dann zu einer Fehlermeldung kommt: "Programm wurde unerwartet beendet"

    Mein Anliegen ist es, in einer Activity eine Liste herstellen zu können (siehe roten Absatz) und ich bin mit meinem Latein schon völlig am Ende!!!

    Wäre euch sehr dankbar, wenn ich mir helfen könntet!

    mfg Chri
     
  2. Shinigami, 27.08.2009 #2
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    69
    Registriert seit:
    08.04.2009
    Hallo.

    Bin auch gerade dabei mich ein wenig mit Android-Programmierung zu befassen.

    Probiere bitte mal folgendes:

    In Deiner main.xml dem ListView ähnlich wie Deinem TextView eine ID verpassen also android:id="@+id/myList" oder ähnliches.

    Dann in der onCreate-Methode folgendes testen:
    Code:
    list = (ListView) findViewById(R.id.myList);
    list.setAdapter(new ArrayAdapter<String> (this,android.R.layout.simple_expandable_list_item_1, COUNTRIES));
    Zumindest wird dann bei mir eine Liste angezeigt.

    Ich habe die Variable list zudem vom Typ ListView deklariert.

    Gruß,
    Shini

     
  3. swordi, 27.08.2009 #3
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    mach mal aus deiner klasse eine ListActivity, also ganz oben
    extends ListActivity

    dann schreibst dort wo du es rot hast
    this.setListAdapter(new ArrayAdapter<String> (list,android.R.layout.simple_expandable_list_item _1, COUNTRIES));

    dann sollte es schon besser klappen

    du versuchst einer liste, die eigentlich eine listActivity ist bzw es sein sollte nach deinen gedanken, aber nicht nach dem code, elemente zuzuordnen. das geht so nicht
     
  4. Shinigami, 27.08.2009 #4
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    69
    Registriert seit:
    08.04.2009
    Das sollte natürlich auch klappen aber ich glaub da ist noch nen kleiner Fehler drin:

    Die nicht vorhandene Variable "list" wird dem Konstruktur von ArrayAdapter übergeben. Da sollte es auch "this" tun.

    Bin zudem mal gespannt, ob Android wegen der main.xml rumjammert. Keine Ahnung ob bei ListActivity individuelle Textviews (mit eigener ID) erlaubt sind.
     
  5. Chri, 28.08.2009 #5
    Chri

    Chri Threadstarter Gewerbliches Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    0
    Registriert seit:
    27.08.2009
    Phone:
    Nexus 4

    1. Danke für euer extrem schnelles feetback! Echt geile Community

    2
    . Wenn ich ihm einen id verpasse ändert sich nichts!
    allerdings ist die Zeile list = (ListView) findViewById(R.id.myList); nicht möglich, da list vom Typ ListActivity ist! Und wenn ich list auf ListView umändere, kann ich keinen Adapter mehr machen!
     
  6. Chri, 28.08.2009 #6
    Chri

    Chri Threadstarter Gewerbliches Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    0
    Registriert seit:
    27.08.2009
    Phone:
    Nexus 4
    Das Problem ist, dass ich genau das verhindern will!

    Mein eigentliches Ziel ist es nämlich, dass ich eine Liste in einem Tab erstelle und dort auch Klicks registrieren kann!
     
  7. swordi, 28.08.2009 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja wo liegt dann das problem?

    einfach eine tabview - in einem der tabs erstellst eine listView mit sagen wir @+id/meineLustigeListe

    im code sagst du nach dem setContentView(xx)

    ListView x = (ListView)findViewById(R.id.meineLustigeListe)
    x.setOnClickListenener(listener)

    und schon hast du was du willst

    du kannst nicht ein listactivity in einen tabhost legen, das geht nicht.
     
    Chri bedankt sich.
  8. Chri, 28.08.2009 #8
    Chri

    Chri Threadstarter Gewerbliches Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    0
    Registriert seit:
    27.08.2009
    Phone:
    Nexus 4
    Ich habs jetzt ganz anders gemacht! (Etwas kompliziert, aber es erfüllt genau das, was ich haben wollte!!!)

    ich habe 4 .java files angelegt (3 tabs und 1 tabhost)

    dann ruft man im tabhost die einzelnen tabs mithfilfe von Intents auf:

    TH_Tabs.addTab(TH_Tabs.newTabSpec("tab1")
    .setIndicator("Tickets")
    .setContent(new Intent(this, Tickets.class)));


    dann noch die mainifestdatei ändern (äuserst wichtig!!!!!!!!)

    und fertig!!!

    PS: Danke für eure Hilfe!

    mfg Chri
     

Diese Seite empfehlen