Peki ... tüm görünümler, bunları oluşturan etkinliğin bir referansı olduğundan (Context
), bu pencereyi referans almak için bu Context
kullanabilirsiniz. Sana bazı dakika önce yazdım bu örneği gösterelim: Sonra
// main activity
import android.app.Activity;
import android.os.Bundle;
public class GetWindow extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view = new MyView(this);
view.changeSomethingInWindow(); // keep an eye on this method
setContentView(view);
}
}
Görünümünüzün içeride bunu yapabilirsiniz:
// your view :D
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class MyView extends View{
public MyView(Context context) {
super(context);
}
public void changeSomethingInWindow(){
// get a reference of the activity
Activity parent = (Activity)getContext();
// using the activity, get Window reference
Window window = parent.getWindow();
// using the reference of the window, do whatever you want :D
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
Bu durumda, ben Pencere Büyük ekran görüntülenir modunu değiştirmek . Umarım bu size yardımcı olur. Bununla başını belaya soktuğunu söyle.
Cevabınız için teşekkür ederiz. Bir etkinliğe getWindow ve döküm kullanmak iyi bir fikirdi. “Window” yerine “IBinder” ın neden döndüğünü bilmiyorum. – Casebash
Merhaba Casidiablo, Kodunuzla ilgili bir sorun var. Bu, yalnızca kendi kodunuzda oluşturduğunuz görünümler için, özel oluşturucunuzda kullandığınız bağlamın bir etkinlik olduğu şekilde mümkündür. Bir Listenin GetContext Yöntemini bir ListAdapter'den denedim ve bu durumda bir Etkinlik değil bir İçerik aldım. Etkinlik, İçerik'ten bir alt sınıftır. Bu, bir Etkinliğe dönüştürülemeyen bir Bağlam nesnesini alabileceğiniz anlamına gelir. Test kodum ClassCastException ile bitti. – Janusz
Yanıltıcı cevap. Etkinliklerde tüm görünümler kullanılmaz! Bazı görünümler PopupMenu veya Dialog veya AppWidgetProvider'da bulunur. Cast istisnası veya yanlış Pencere alırsınız. Diyaloğun kendi penceresi vardır. Cevabınızı gözden geçirin. –