[Gelöst] findViewById() funzt nicht - was mache ich falsch?

M

maystorm

Neues Mitglied
2
Hallo Leuts,

ich zermartere mir seit Stunden den Kopf, warum bei mir die Methode findViewById() nicht funktioniert. Hier ein Beispiel, das einen Button in der main.xml definiert. Diesen Button will ich mit findViewById() referenzieren, bekomme aber immer null zurück (was ich mit einem Toast sichtbar mache):

Code:
// StartActivity.java

package no.package_name;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;

public class StartActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final Button button = (Button) findViewById(R.id.a_normal_button);
        
        final String msg = (button == null ? "Button reference is null!" : "Button was found");
        final Toast toast = Toast.makeText(this, msg, Toast.LENGTH_LONG);

        toast.show();
    }
}
main.xml:
Code:
<?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" >

    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
    />
    
    <Button
        android:label="@+id/a_normal_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_text"
    />
</LinearLayout>
strings.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>

<resources>
    <string name="hello">A test of the findViewById() method</string>
    <string name="app_name">FindViewByIdTest</string>
    <string name="button_text">I am a normal button!</string>
</resources>
Manifest.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="no.package_name"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".StartActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>
Ich bitte um Erleuchtung, da ich absolut nicht weiß, was falsch sein soll. :sad:

TIA!
 
Zuletzt bearbeitet:
Hallo maystorm,

meines Wissens musst du die ID setzen

android:label="@+id/a_normal_button"

nicht das label ;)

Sprich:
android:id="@+id/a_normal_button"


regards
 
Au weia! :blink:

Das war's, mein Dank ist dir auf ewig gewiss! :smile:
 
Hallo Neeldarax,
ich hab' auch Problem mit findViewById, kannst mir bitte auch Rat geben?
Meines ist anders. Ich möchte ein "Button" rufen, aber in das zweite ".java" file, nicht "main class".Und zwar habe das geschrieben:
Code:
[SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f][LEFT]mSendlevel_Button1 = (Button) findViewById(R.id.btn1);[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT][/SIZE]
[/LEFT]

Es gibt keinen Fehler in eclips, aber wenn ich es im Hnady ausführe, sagt:
The application... has stopped unexpectedly.
und spritzt raus.
Das habe ich genau in my main class, da funktioniert aber hier endet das
Programm. Das Problem liegt an findViewById. Gibt es andere Methode, ein Button zu rufen (call)?
Hast du irgend welche Idee?
Danke
 
hi m.harati,

es wäre hilfreich einen neuen Thread zu machen, da dieser als gelöst markiert ist. Und dazu kannst am besten Informationen wie Logcat, XML-Datei und wie deine Java-Klassen zueinander stehen.

regards
 
Es liegt schon in einem Thread. Egentlicht hat mein Program zwei classes und jede hat einenThread. Kann man in einem Thread noch einen definieren? Als eine Method? oder?
Danke nochmals
 

Ähnliche Themen

U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
665
swa00
swa00
R
Antworten
9
Aufrufe
713
koje71
koje71
SaniMatthias
Antworten
19
Aufrufe
871
swa00
swa00
Zurück
Oben Unten