0
votes

Comment recevoir des données d'une activité à une autre - Android

J'essaie d'envoyer un entier d'une activité à une autre dans son studio Android. Dans ma classe source, j'ai envoyé les données à l'aide de putextra () code> et dans la classe de destinataire, j'essaie de la recevoir à l'aide de getintent () code>. Cependant, je reçois l'erreur 'ne pouvait pas résoudre la méthode' getintent () 'dans la classe de destinataire. Voici mon code:

Je suis un débutant total à Android Studio ainsi que Java, donc si je manque quelque chose de vraiment évident, s'il vous plaît être prévenant. P>

Activité Source: P> xxx pré>

Activité de destinataire: P>

public class AugmentedImageNode extends AnchorNode {

  private static final String TAG = "AugmentedImageNode";

  // The augmented image represented by this node.
  private AugmentedImage image;

  private static CompletableFuture<ModelRenderable> ulCorner;

  public AugmentedImageNode(Context context) {

       Intent intent = getIntent();
       Bundle extras = intent.getExtras();
       int value = extras.getInt("key");

          if (value == 0) {
              // Upon construction, start loading the models for the corners of the frame.
              if (ulCorner == null) {
                  ulCorner =
                          ModelRenderable.builder()
                                  .setSource(context, Uri.parse("models/tinker.sfb"))
                                  //.setSource(context, Uri.parse("models/borderfence-small2.sfb"))
                                  .build();
                   }
          }
}
@SuppressWarnings({"AndroidApiChecker", "FutureReturnValueIgnored"})
  public void setImage(AugmentedImage image) {
    this.image = image;

    // If any of the models are not loaded, then recurse when all are loaded.
    if (!ulCorner.isDone())// || !urCorner.isDone() || !llCorner.isDone() || !lrCorner.isDone())
      {
      CompletableFuture.allOf(ulCorner)//, urCorner, llCorner, lrCorner)
          .thenAccept((Void aVoid) -> setImage(image))
          .exceptionally(
              throwable -> {
                Log.e(TAG, "Exception loading", throwable);
                return null;
              });
    }

    // Set the anchor based on the center of the image.
    setAnchor(image.createAnchor(image.getCenterPose()));

    // Make the 4 corner nodes.
    Vector3 localPosition = new Vector3();
    Node cornerNode;
localPosition.set(-0.0f * image.getExtentX(), 0.1f, +0.5f * image.getExtentZ());
    cornerNode = new Node();
    cornerNode.setParent(this);
    cornerNode.setLocalPosition(localPosition);
    cornerNode.setLocalRotation(Quaternion.axisAngle(new Vector3(-1f, 0, 0), 90f));
    cornerNode.setRenderable(ulCorner.getNow(null));
}

    private void setLocalRotation() {
    }

    public AugmentedImage getImage() {
    return image;
  }
}


2 commentaires

Vous pouvez utiliser Getintent () uniquement lorsque vous disposez d'une activité. Pour accéder aux données, vous pouvez utiliser SharePreference.Store Data de préférence lorsque vous souhaitez une intention de cette page et des données claires lorsque l'utilisateur appuyez sur Back, appuyez sur.


Pourriez-vous s'il vous plaît élaborer, peut-être avec du code? Je suis perdu et je pourrais utiliser l'aide: /


4 Réponses :


2
votes

getintent () est uniquement disponible en classe qui étend l'activité [directement ou indirectement]


3 commentaires

Ok, est-ce que je peux atteindre cela dans mon code? Si oui, comment puis-je le faire?


Quel est l'anchornode dans la classe Augmentedimagenode.


Le seul endroit anchornode est utilisé est dans les importations, comme: importer com.google.ar.sceneform.anchornode;



0
votes

Retirez les trois premières lignes de votre augmentation de votre augmentation de votre activité de destinataire et remplacez-la avec le suivant

 int value = getIntent().getIntExtra("key",0);


8 commentaires

Ensuite, je reçois: méthode non statique 'getintextra (java.lang.string, int)' ne peut pas être référencé à partir d'un contexte statique


désolé cela n'a pas d'intention, c'est getintent () j'ai mis à jour ma réponse


Me ramène à la même erreur de ne pas résoudre la méthode 'getintent ()'


Essayez d'ajouter une getactivité () ou GetContext () avant Getintent () comme Getactivity (). Getintent (), Je ne sais pas si cela fonctionnera mais essayez d'essayer.


Je l'ai essayé, mais il ne peut pas résoudre la méthode getactivité () maintenant.


Essayez de donner de la construction -> Projet propre et construire -> Projet de reconstruction. Parfois, cela pourrait être une faute de l'IDE, c'est le cas propre que le projet ne le résoudrait.


Supprimer la getactivité ou getContext tout en nettoyant le projet si vous les avez ajoutés auparavant.


Essayé tout ce qui précède, même problème.



0
votes

Voici le code Comment utiliser la préférence partage dans votre scénario.Je espère que cela vous aidera.

au lieu du code ci-dessous p> xxx pré>

Utilisez celui-ci p >

SharedPreferences settings = getSharedPreferences("MyPref", MODE_PRIVATE);
int snowDensity = settings.getInt("Key", 0); //0 is the default value


2 commentaires

Monsieur, vous êtes incroyable! Cela fonctionne parfaitement, je ne peux pas vous remercier assez!


Mes excuses pour l'hypothèse. Merci encore :)



0
votes

getintent fonctionne si vous êtes degré d'activité et d'appcCompatictivité

par exemple: p>

MainActivity.java strong> p>

public class SecondActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

     //get intent values
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    int value = extras.getInt("int_key");
    Log.e("Int_Value", "" + value);

    // another way
    int i = getIntent().getIntExtra("int_key", 0);
    Log.e("Int_Value", "" + i);
}
}


1 commentaires

Oui, c'est parce que j'ai besoin d'étendre l'anchornode. Existe-t-il un moyen d'étendre deux activités?