bagaimana cara saya mengakses aktivitas utama secara terprogram dari tampilan permukaan untuk menghapus adView

Aktivitas utama saya memanggil permainan Surfaceview saya, mengatur tata letak dengan menambahkan tampilan iklan dan tampilan permukaan (awalnya saya tidak menggunakan tata letak sama sekali sebelum saya harus memasang iklan di spanduk). namun saya belum bisa mengakses aktivitas utama dari tampilan permukaan untuk mengubah tata letak sehingga tidak menyertakan tampilan iklan setelah permainan dimulai. aku terpaksa memasang spanduk terus menerus karena ini. upaya untuk mematikan iklan masih menyisakan spanduk kosong. apakah ada yang tahu cara mengakses fungsi aktivitas utama dari tampilan permukaan.

Saya membuat fungsi removead() di aktivitas utama untuk menentukan tampilan konteks baru tanpa adView, tetapi saya tidak dapat mengaksesnya.

context, aktivitas utama, diteruskan ke Surfaceview saat pembuatan. Saya sudah mencoba:

context.removead();
this.getContext().removead();
((Activity) this.getContext()).removead();
ViewGroup vg = (ViewGroup)(
this.getParent());
vg.removeView(adView);

person Androidcoder    schedule 10.09.2013    source sumber


Jawaban (1)


Saya akhirnya mengabaikan upaya untuk mengontrol adAiew langsung dari SurfaceView, alih-alih membuat Handler di aktivitas utama dan mengirim pesan ke sana dari SurfaceView aktivitas utama yang dibuat. Penangan kemudian memanggil VISIBLE atau GONE ke adAiew tergantung pada pesan yang dikirim.

person Androidcoder    schedule 10.09.2013
comment
Ide lainnya adalah menggunakan implementasi bus acara. Dengan begitu Anda cukup mengeposkan pesan dan mendengarkan pesan. EventBus mudah digunakan dan populer tetapi solusi Anda kurang lebih memberikan hasil yang sama seperti menggunakan a BroadcastReceiver karena Android adalah model yang didorong oleh peristiwa. - person Ali; 12.09.2013