使用androidannotations来触发意图

时间:2014-03-12 21:51:24

标签: android android-intent android-annotations

我已成功使用androidannotations @Extra来解码一个意图并获取已发送的消息,如此代码段所示:

@Extra(MyActivity.MESSAGE)
String intentMessage;

@ViewById(displayMessage)
TextView textView;

@AfterViews
protected void init() {
    textView.setText(intentMessage);
}

我想知道如果可能的话,首先使用注释创建意图。例如,替换以下

Intent intent = new Intent(this,DisplayMessageActivity_.class);
intent.putExtra(MESSAGE, s);
startActivity(intent);
有些东西。这可能吗? (我对这一切都很陌生,所以很可能错过了一些非常明显的东西)

解决方案:

DisplayMessageActivity_.intent(this).intentMessage(s).start();

其中,intentMessage是额外字段的名称。

3 个答案:

答案 0 :(得分:7)

是的,您可以使用以下内容:

// Starting the activity
MyListActivity_.intent(context).start();

// Building an intent from the activity
Intent intent = MyListActivity_.intent(context).get();

// You can provide flags
MyListActivity_.intent(context).flags(FLAG_ACTIVITY_CLEAR_TOP).start();

// You can even provide extras defined with @Extra in the activity
MyListActivity_.intent(context).myDateExtra(someDate).start();

// startActivityForResult() equivalent:
MyListActivity_.intent(context).startForResult();

来源:https://github.com/excilys/androidannotations/wiki/HowItWorks

答案 1 :(得分:1)

解。终于看到了它的工作原理。感谢。

DisplayMessageActivity_.intent(this).intentMessage(s).start();

其中,intentMessage是要启动的活动中定义的@Extra,例如

@EActivity(R.layout.activity_display)
public class DisplayMessageActivity extends Activity {

    public static final String MESSAGE = "net.richardriley.MyFirst.MESSAGE";

    @Extra(MESSAGE)
    String intentMessage;

    @ViewById(displayMessage)
    TextView textView;

    @AfterViews
    protected void init() {
        textView.setText(intentMessage);
    }

}

答案 2 :(得分:0)

我知道这是一个迟到的答案,但我已经开发了一个完全正确的库。它使用注释来生成意图代码。

在此处查看:https://github.com/kostasdrakonakis/android_navigator