Hilfe! Liste in einer Activity generieren

Chri

Chri

Fortgeschrittenes Mitglied
0
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
 
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

 
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
 
swordi schrieb:
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));

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.
 
Shinigami schrieb:
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



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!
 
swordi schrieb:
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

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!
 
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.
 
  • Danke
Reaktionen: Chri
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
 

Ähnliche Themen

D
Antworten
17
Aufrufe
391
datNeMo
D
D
  • Data2006
Antworten
14
Aufrufe
483
jogimuc
J
R
  • RudolfHagen
Antworten
1
Aufrufe
648
koje71
koje71
Zurück
Oben Unten