findViewByİD döndürür null
Birincisi: evet, bu konuyla ilgili diğer konuları okudum. Ve sadece bu siteden bu... (biraz hayal kırıklığına uğradım)
Çoğu XML dosyası android:id
kullanmak için tavsiye yerine id
sadece. Yaptım.
Başkalarından, View.findViewById
Activity.findViewById
daha farklı çalıştığını öğrendim. Bunu da hallettim.
Benim location_layout.xml
, ben kullanın:
<FrameLayout .... >
<some.package.MyCustomView ... />
<LinearLayout ... >
<TextView ...
android:id="@ id/txtLat" />
...
</LinearLayout>
</FrameLayout>
Benim Etkinlik yapıyorum:
...
setContentView( R.layout.location_layout );
ve benim özel bir sınıf görünümü:
...
TextView tv = (TextView) findViewById( R.id.txtLat );
null
verir.Bunu yaparken, benim Aktivite iyi çalışır.Belki de Activity.findViewById
View.findViewById
farklılıklar yüzünden. Kapsamında gümrük görünüm yapıcı geçti ben yerel olarak depolanan ve çalıştı:
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
ayrıca null
geri dönmüştür.
Daha sonra değiştirdim benim özel görünüm uzatmak ViewGroup
yerine View
değişen location_layout.xml
izin TextView
doğrudan çocuğun benim özel görünüm, böylece View.findViewById
gerektiği gibi çalışması gerekiyor. Sürpriz: hiç bir işe yaramadı.
Heck neyi yanlış yapıyorum?
Herhangi bir yorum takdir ederim.
CEVAP
null döndürür
Çok erken diyorsun, çünkü muhtemelen. onFinishInflate()
kadar bekleyin. Bir özel gösteren Here is a sample project içeriğini erişme Görüntüleyin.
Neden operatör null verildiğinde yanlı...
ASP.NET özel hata sayfası - Sunucu.() ...
MenuİtemCompat.getActionView her zaman...
Yazın.GetType("ad.bir.b.Code"...
Android Kamera : veri niyet döndürür n...