2017-06-08 3 views
0

je reçois une intention avec une chaîne je une nouvelle activité, je voudrais disply la chaîne à l'intérieur d'un TextView, j'ai essayé de déclarer mon TextView à l'intérieur du onCreate mais il plante. comment je peux faire pour disply la variable "requestbuff"?SetText dans une nouvelle activité

public class RequestDetail extends MainActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     Intent intent = getIntent(); 
     String requestbuff = intent.getExtras().getString("Requête"); 
     TextView details = (TextView)findViewById(R.id.detailreq); 
     details.setText(requestbuff); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.detail_req); 
    } 
} 
+0

L'instruction d'appel de super méthode doit toujours être le premier dans le corps de la méthode. Essayez également de déplacer setContentView au début de la méthode. Donc vous aurez la prochaine commande dans la méthode onCreate: 1) super 2) setContentView 3) rien d'autre – Ivvan

+0

Le but de ceci est que vous ne pouvez pas utiliser findViewById avant setContentView, car la vue n'est pas encore créée, et vous n'avez pas accès aux composants (dans cet exemple à TextView) – Ivvan

+0

Merci beaucoup, ah ah stupide. –

Répondre

0

Cela fonctionnera très bien. Mettez setContentView au début de la méthode afin que la vue soit créée. Après cela, vous pouvez utiliser findViewById()

public class RequestDetail extends MainActivity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.detail_req); 
    Intent intent = getIntent(); 
    String requestbuff = intent.getExtras().getString("Requête"); 
    TextView details = (TextView)findViewById(R.id.detailreq); 
    details.setText(requestbuff); 
} 
}