2016-07-09 14 views
0

(特定の場合には)意図を起動していないアイテムに依存エキストラは、Androidの注釈によって同じ生成された活動に設定されているswitch()AndroidAnnotationsは、私が持っている

// this is a switch 
case GlobalSearchItemDTO.TYPE_CATEGORIA: 
    ProductosActivity_.intent(context) 
    .idCategoria(globalSearchEvent.globalSearchItem.getId()) 
    .flags(Intent.FLAG_ACTIVITY_NEW_TASK 
      | Intent.FLAG_ACTIVITY_SINGLE_TOP) 
    .start(); // <-- enters and launch the activity 
    break; 
case GlobalSearchItemDTO.TYPE_PRODUCTO: 
    ProductosActivity_.intent(context) 
    .idProducto(globalSearchEvent.globalSearchItem.getId()) 
    .flags(Intent.FLAG_ACTIVITY_NEW_TASK 
      | Intent.FLAG_ACTIVITY_SINGLE_TOP) 
    .start(); // <-- enters but nothing happens 
    break; 

しかし、何か奇妙ながあるとき、私TYPE_CATEGORIAケースを起動すると、ProductosActivity_が正しく起動されます。

TYPE_PRODUCTOの場合と全く同じ状況で、ProductosActivity_は起動していません。

はい私は、コードをデバッグし、それぞれのケースは、それぞれの状況

に当然入っYES YESコードはすでにで更新されていても、デバッガのハイライト線がTYPE_PRODUCTO場合に.start()ラインに触れたが、何も

が起きていませんデバッガ

NOメッセージは、エラーは、何の警告

私はAndroidの注釈を持つ何かが足りないんですか?

私は.get()で、intをvarに設定してからネイティブでインテントを起動しようとしました。

答えて

0

他の@Extra変数も設定した場合にのみ機能します。

// this is a switch 
case GlobalSearchItemDTO.TYPE_CATEGORIA: 
    ProductosActivity_.intent(context) 
    .idCategoria(globalSearchEvent.globalSearchItem.getId()) 
    .flags(Intent.FLAG_ACTIVITY_NEW_TASK 
      | Intent.FLAG_ACTIVITY_SINGLE_TOP) 
    .start(); // <-- enters and launch the activity 
    break; 
case GlobalSearchItemDTO.TYPE_PRODUCTO: 
    ProductosActivity_.intent(context) 
    // and this is a shit.ch 
    // seriously Android Annotations? 
    .idCategoria(globalSearchEvent.globalSearchItem.getId()) 
    .idProducto(globalSearchEvent.globalSearchItem.getId()) 
    .flags(Intent.FLAG_ACTIVITY_NEW_TASK 
      | Intent.FLAG_ACTIVITY_SINGLE_TOP) 
    .start(); // <-- now enters and launch the activity 
    break; 

ロジックbisinessの2番目の変数は必要ありません。

私が.idCategoria(null)を置くとバグがまだ残っているので、変数を必要としなくても値を設定する必要がありました:/