est-ce mal? TextView displayTextView = (TextView)findViewById(R. id.DisplayTextView);

Tout le monde, je suis un newbie de développement android. Maintenant j'ai une question qui ne peut être résolu par moi-même. Rien de mal avec le code ci-dessous(en particulier la ligne dans le code)?

MainActivity.java:

package com.amaker.ch02.app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    private TextView displayTextView = (TextView)findViewById(R.id.DisplayTextView);  <--Possibly this line

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

        displayTextView.setText("change in the code"); 
    }
}

Exécuter, et j'ai reçu un message dans l'AVD: L'application s'est arrêté de façon inattendue. Merci d'essayer de nouveau. Mais si je n'ai pas affecter displayTextView immédiatement après la déclaration, OIE-je modifier le code comme suit, puis tout va bien.

package com.amaker.ch02.app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    private TextView displayTextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        displayTextView = (TextView)findViewById(R.id.DisplayTextView);
        displayTextView.setText("change in the code"); 
    }
}

Pourquoi? Toute différence avec les deux codes?

OriginalL'auteur Searene | 2012-02-01