我已成功使用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是额外字段的名称。
答案 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)
我知道这是一个迟到的答案,但我已经开发了一个完全正确的库。它使用注释来生成意图代码。