显示popupWindow的问题

时间:2016-01-25 09:01:17

标签: android android-popupwindow

我正在为Android开发一个聊天应用程序。

我在弹出窗口中显示联系人。我假装要做的就是在屏幕的右侧显示它们,就像谷歌+显示菜单一样。问题是我已经搜索了许多结构来显示它们,最后我看到的那个没有被弃用的是popupWindow。如果这是错的,我将非常感谢您的帮助。

当我尝试执行代码时,我收到了这个错误(我已经尝试了很多东西,这实际上就是我所拥有的):java.lang.NullPointerException:尝试调用虚方法'void android.widget.TextView。在osmuogar.letter.interfaz.conversacion.Sala.showContacts(Sala.java:100)的空对象引用上的setText(java.lang.CharSequence)'

Java代码---

public void showContacts(MenuItem item){
    LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
    final ViewGroup popupView = (ViewGroup)layoutInflater.inflate(R.layout.lista_amigos, null);
    PopupWindow popupWindow = new PopupWindow(popupView, RadioGroup.LayoutParams.WRAP_CONTENT,
            RadioGroup.LayoutParams.WRAP_CONTENT);

    final LinearLayout layout = (LinearLayout) popupView.findViewById(R.id.linearLayoutAmigos);

    layout.inflate(popupView.getContext(),R.layout.contact,null);
    TextView contactName = (TextView) layout.findViewById(R.id.contactname);
    contactName.setText("contacto1");
    popupView.addView(layout);

    popupWindow.setFocusable(true);
    popupWindow.update();
    popupWindow.showAtLocation(findViewById(R.id.mainLayout), Gravity.RIGHT,0,0);

我的布局--- --lista_amigos

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/scrollViewAmigos">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/linearLayoutAmigos">
        </LinearLayout>
    </ScrollView>

</LinearLayout>

- 接触

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:background="#ffffff">
    <TextView
        android:id="@+id/contactname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/imageView"
        android:text="contact"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@android:color/black"
        android:textSize="24sp" />
</RelativeLayout>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您正在填充R.layout.contact布局layout.inflate(popupView.getContext(),R.layout.contact,null);,并且您希望查找ID为TextView的{​​{1}},但您正在从其他虚张声势的视图中找到contactname视图。所以你应该这样做

contantname

希望这有帮助。