2017-09-21 1 views
1

Je suis vraiment nouveau sur Android. J'essaie de transmettre les données à la vue de texte d'une autre classe. Mais pour une raison quelconque, il n'apparaît pas dans la deuxième classe/page (le textview n'a pas changé). J'ai été capable de le faire quand je n'utilisais pas l'annotation Android, mais on m'a dit que l'utilisation d'annotations est beaucoup plus facile, donc j'essaye de le convertir en ça mais pour une raison quelconque ça ne marche pas? Je pourrais manquer quelque chose.Comment puis-je obtenir des données supplémentaires en utilisant l'annotation Android?

principal 1

package com.example.faculty.labactivity; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.Toast; 

import org.androidannotations.annotations.Click; 
import org.androidannotations.annotations.EActivity; 
import org.androidannotations.annotations.ViewById; 

@EActivity(R.layout.world) 
public class MainActivity extends AppCompatActivity { 

    @ViewById(R.id.userName) 
    EditText user; 


    @Click(R.id.signIn) 
    public void signInButton(){ 

    Main2Activity_.intent().name(user.getText().toString()).start(); 

    } 

principal 2

package com.example.faculty.labactivity; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import org.androidannotations.annotations.AfterViews; 
import org.androidannotations.annotations.Click; 
import org.androidannotations.annotations.EActivity; 
import org.androidannotations.annotations.Extra; 
import org.androidannotations.annotations.ViewById; 

@EActivity(R.layout.welcome) 
public class Main2Activity extends AppCompatActivity { 

@Extra("name") 
String n; 

@ViewById(R.id.name) 
TextView tv; 

Intent in2 = getIntent(); 

@AfterViews 
void home(){ 
    tv.setText("Hello, " + n + " !"); 
    } 

} 

Répondre

3

Dans votre activité de réception (par exemple MyActivity), vous devez déclarer le nom de l'objet que vous souhaitez recevoir comme

@Extra("name") 
String name; 

Pour transmettre des données, lorsque vous créez votre intention, vous devez faire quelque chose comme ceci:

Main2Activity_.intent(this).name(user.getText().toString()).start(); 

Si vous avez besoin d'une solution plus précise, éditez votre question pour afficher plus de votre code.

Vous pouvez consulter le official doc pour un exemple plus complet

+0

Hi! Merci de répondre. J'ai essayé de suivre votre code, mais il y a une erreur dans Main2_.intent() - il a dit ne peut pas résoudre la méthode 'intention()'? –

+0

s'il vous plaît envoyez-moi votre code Main2 – firegloves

+0

Ajouté le code entier :) –