2013-05-15 71 views
0

我正在應用程序中顯示ContextMenu。現在,當按下此ContextMenu中的某個菜單項時,我想顯示一個PopupWindow。我發現了一些如何在互聯網上使用PopupWindow的例子,但我仍然有問題。我有以下代碼:PopupView.showAtLocation是未定義的類型查看

LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
View popupView = layoutInflater.inflate(R.layout.popup, null); 
final PopupWindow popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
popupView.showAtLocation(this.findViewById(R.id.main_layout), Gravity.CENTER, 0, 0); 

以及活動的XML文件中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="#232323" > 

.... 

</RelativeLayout> 

我想這應該工作,但我得到了以下錯誤消息:

「的方法showAtLocation (View,int,int,int)未定義爲類型View「

這是什麼意思?我給showAtLocation一個視圖和三個整數,對吧?所以有什麼問題?你們有什麼想法嗎?

回答

1

你用popView調用它。你應該用popupWindow調用它。

這種方法對於popupwindow不是視圖

+0

哇感謝您的快速響應!愚蠢的是,我沒有看到我自己:)。 – Zero

0

請檢查此

popupview.showAtLocation(視圖,Gravity.CENTER,0,0);

第一個參數的觀點是在當前頁面視圖,基於該視圖位置這個彈出的看法是這條線出現

2
popupView.showAtLocation(this.findViewById(R.id.main_layout), Gravity.CENTER, 0, 0); 

變化

popupWindaow.showAtLocation(popupView,Gravity.CENTER, 0, 0); 

這樣。

請注意。您已將showAtLocation設置爲Windaow,而不是View

我希望這會對您有所幫助。