2012-07-20 34 views
5

Değişkenimi kabul etmiyorum Iv'e şimdi bu konuda çok şey okudum ve yeni ADT'nin anahtar deyimleriyle sürekli ifadeler verilmesi gerektiğine dair örnekler buldum, ama herşey hakkında @Inject hakkında hiçbir şey belirtilmiyor.Ek Açıklama

Sorunlu kodlarımın bir örneği.

import roboguice.inject.InjectView; 
public abstract class YpListActivity extends GuiceListActivity 

    @InjectView(R.id.btnSearch) 
    Button btnSearch; 
    @InjectView(R.id.btnSpeech) 
    View btnSpeech; 
    @InjectView(R.id.etWhat) 
    EditText etWhat; 
    @InjectView(R.id.etWhere) 
    EditText etWhere; 
    @InjectView(R.id.tvIn) 
    TextView tvIn; 
    @InjectView(R.id.tvLocation) 
    TextView tvLocation; 
    @InjectView(R.id.tvCustom) 
    private ToggleButton tvCustom; 
    @InjectView(R.id.infoButton) 
    private ImageView iconButton; 

denemek ve @injectView (R.id. *) gibi bir şey kullanmak her zaman, tutulma hata atar: "ek açıklama için değer InjectView.value sabit ifadesi olmalıdır öznitelik"

Hatta bu değiştirmeyi denedim:

 private static final int btnsrch = new Integer(R.id.btnSearch); 

    @InjectView(btnsrch) 
    TableRow btnSearch ; 

Nasıl sabit ifadesini "btnsrch" değil ??

Bunu düzeltmek konusunda herhangi bir fikri olan var mı?

+0

Java semantiklerini değiştir, sanırım. –

+3

Daha fazla bilgi için bkz. [RoboGuice bug No. 139] (http://code.google.com/p/roboguice/issues/detail?id=139). [Kütüphane proje kimlikleri ADT 14+ 'den son değil] (http://tools.android.com/tips/non-constant-fields). – JohnnyLambada

cevap

0

"Özel" i kaldırın ve düzgün çalışmalı.

İlgili konular