Her şeyden önce: evet, bu konudaki diğer tüm konuları okudum. Ve sadece bu siteden olanlar ... (görüyorsun, biraz sinirliyim)
Çoğu android:id
sadece id
XML dosyasında kullanmak için tavsiye ile geliyor . Yaptım.
Diğerlerinden öğrendim, bu View.findViewById
durumdan farklı çalışıyor Activity.findViewById
. Ben de hallettim.
Benim location_layout.xml
, kullanıyorum:
<FrameLayout .... >
<some.package.MyCustomView ... />
<LinearLayout ... >
<TextView ...
android:id="@+id/txtLat" />
...
</LinearLayout>
</FrameLayout>
Faaliyetlerimde:
...
setContentView( R.layout.location_layout );
ve özel görünüm sınıfımda:
...
TextView tv = (TextView) findViewById( R.id.txtLat );
geri döner null
. Bunu yaptığımda, Etkinliğim iyi çalışıyor. Bu yüzden belki de çünkü var Activity.findViewById
ve View.findViewById
farklılıkların. Bu yüzden yerel olarak gümrük görünümü yapıcısına aktarılan içeriği sakladım ve denedim:
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
geri döndü null
.
Sonra, ben genişletmek için benim özel görünüm değişti ViewGroup
yerine View
ve değiştirilemez location_layout.xml
izin TextView
böylece, benim özel bir görünüm doğrudan çocuk olmak View.findViewById
gerekiyordu olarak çalışması gerekir. Sürpriz: hiçbir şey çözmedi.
Peki ne yanlış yapıyorum?
Yorumlarınız için teşekkür ederim.