2014-03-12 33 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); 
    } 

}