在Android中查找包含视图的窗口

我无法find一个方法来获得一个引用Window包含一个任意的View诉我findgetWindowToken ,但我不知道如何使用它? 有谁知道如何?

另外,有谁知道为什么它返回一个IBinder而不是一个Window

  • 在Android服务中检测“home button pressed”事件显示一个用户界面(类似于facebook的聊天头)
  • 当工作线程工作时,UI变得不连贯
  • 使列表视图(Android)中的列表项目可以select线性布局
  • 操作栏:旧版Android版本的最佳实践
  • Google的滑块devise指南的实施
  • Android:如何在Home App中切换桌面等活动?
  • ScrollView中的图像网格
  • 如何在编辑文本之间放置一个水平的因子线
  • 那么…因为所有的视图都有创build它们的活动( Context )的引用,所以你可以使用这个Context来获得窗口的引用。 让我来给你看几分钟前我写的这个例子:

     // 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); } } 

    然后,在你的视野内,你可以做到这一点:

     // 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); } } 

    在这种情况下,我将窗口显示的模式更改为全屏。 希望这对你有所帮助。 告诉我你是否遇到麻烦