public class Offer_Popup extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.offer_popup);
//newly added code, the window popup
LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = new PopupWindow(
inflater.inflate(R.layout.popup_example, null, false),
100,
100,
true);
pw.showAtLocation(this.findViewById(R.id.relativeLayout_popup), Gravity.CENTER, 0, 0);}
/////////////////////
popup_example.xmlデバッグ次のAndroidのコード、ポップアップウィンドウ
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Test Pop-Up"
/>
</LinearLayout>
DDMSはshowAtLocationが誤りである最後の行を示しています。
ウィンドウを追加できません - トークンnullが無効です。 android.view.WindowManagerBadToken。 ポップアップを追加する前に、プログラムはうまく動作します。しかし、ポップアップコードの後、クラッシュしました。それについて話している悪いトークンは何ですか?
PWが膨張した後に有効になり、ID = 83xxxxxxxx mWindowManagerは、有効なID = 83xxxxxxxです。 – lilzz