如何使用 Android 注释通过 Intent 获取额外数据?

How can I get extra data by Intent using Android annotation?

我真的是 Android 的新手。我正在尝试将数据传递给另一个 class 的文本视图。但由于某种原因,它没有出现在第二个 class / 页面中(textview 没有改变)。当我不使用 android 注释时我能够做到这一点,但我被告知使用注释要容易得多所以我试图将它转换为注释但由于某种原因它不起作用?我可能遗漏了什么。

主要 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();

   }

主要 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 + " !");
    }

}

在你的接收中Activity(例如MyActivity)你必须像这样声明你想要接收的对象的名称

@Extra("name")
String name;

要传递数据,当您创建意图时,您必须执行如下操作:

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

如果您需要更精确的解决方案,请编辑您的问题以显示更多代码。

您可以查看 official doc 以获得更完整的示例

这可能与您应该为 project_root/build.gradleapp/build.gradle 文件的注释添加的依赖项有关。

确保检查此线程:what is Android Annotations and why we use Android Annotations?