2014-03-12 26 views
3

我已经成功地使用androidannotations @Extra解码的意图,因为这片段演示获取消息发送:使用androidannotations火的意图

@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); 

有东西。这可能吗? (我完全陌生的这一切所以也许我失去了一些东西非常明显)

SOLUTION:

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

哪里intentMessage是多余的字段的名称。

回答

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

+0

你能可能握住我的手一点点在这里,因为我没有看到它。我之前阅读过这篇文章,但是我很想念如何解决我为EXTRA_MESSAGE设置额外的问题 - 这只是一个API列表,我从中没有看到如何设置与额外名称相关联的字符串(上面的EXTRA_MESSAGE),然后调用StartActivity。 – RichieHH

+0

对不起,我其实没有使用@Extra注释,但我只是知道它的存在。我很高兴你能弄明白! – BVB

+0

可能您可以接受我的答案,将其关闭? – RichieHH

1

解决方案。最后看到它如何工作的模式。谢谢。

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

其中intentMessage是@Extra在活动定义为e.g开始

@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); 
    } 

}