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:idsadece idXML dosyasında kullanmak için tavsiye ile geliyor . Yaptım.
Diğerlerinden öğrendim, bu View.findViewByIddurumdan 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.findViewByIdve View.findViewByIdfarklı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 ViewGroupyerine Viewve değiştirilemez location_layout.xmlizin TextViewböylece, benim özel bir görünüm doğrudan çocuk olmak View.findViewByIdgerekiyordu olarak çalışması gerekir. Sürpriz: hiçbir şey çözmedi.
Peki ne yanlış yapıyorum?
Yorumlarınız için teşekkür ederim.