2015-08-20 57 views
0

在尝试调用此方法时出现以下异常。在Android应用程序中打开弹出窗口时出现异常

在异常回调的MessageQueue:handleReceiveCallback 08-21 00:12:43.454 10843-10843/common.barter.com.barterapp E /的MessageQueue-JNI:android.view.InflateException:二进制XML文件 线#2:在android.view处com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 处的android.view.LayoutInflater.createView(LayoutInflater.java:633) 处的类 错误。 LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInf later.inflate(LayoutInflater.java:482) 在android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在android.view.LayoutInflater.inflate(LayoutInflater.java:365)

public class GlobalHome extends ActionBarActivity{ 
---------------------- 
---------------------- 
private void showLocationPopup() { 

    LayoutInflater inflater = (LayoutInflater) 
      this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.popup_location, 
      (ViewGroup) findViewById(R.id.layout_location_popup)); 
    PopupWindow pw = new PopupWindow(
      layout, 
      100, 
      100, 
      true); 
    // The code below assumes that the root container has an id called 'main' 
    pw.showAtLocation(layout, Gravity.CENTER, 0, 0); 

} 
} 

版式文件

<?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" 
android:background="@color/switch_thumb_material_light" 
android:id="@+id/layout_location_popup" 
> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dip" 
    android:text="Test Pop-Up" 
    /> 

</LinearLayout> 
+0

你可以请你发布布局文件,你试图膨胀? – Anytoe

+0

@anytoe更新了帖子。 – pagalpanda

+0

如果我改变颜色而没有错误,例如:android:background =“#FFFFFF”,我可以在屏幕中间看到一个小的弹出窗口,所以也许你的问题应该更好:为什么这个颜色不适用于弹出? – Anytoe

回答

0

更改您的代码:

private void showLocationPopup() { 

    LayoutInflater inflater = (LayoutInflater) 
      getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.popup_location,(ViewGroup) getActivity().findViewById(R.id.layout_location_popup)); 
    PopupWindow pw = new PopupWindow(
      layout, 
      100, 
      100, 
      true); 
    // The code below assumes that the root container has an id called 'main' 
    pw.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
    pw.showAtLocation(layout, Gravity.CENTER, 0, 0); 

} 

<?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" 
android:background="#FFFFFF" 
android:id="@+id/layout_location_popup"> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dip" 
    android:text="Test Pop-Up"/> 
</LinearLayout> 

我改变了颜色,因为你选择的颜色不起作用。似乎不是我典型的Android颜色。此外,我将布局的宽度和高度设置为'WRAP_CONTENT'。对于我来说,它现在在屏幕中间以白色背景显示正常。

相关问题