弹出窗口上的Listview没有显示

时间:2014-03-07 08:39:37

标签: android jquery listview android-listview popup

我在弹出窗口中有一个列表视图,从我的asynctask获取的listview内容,我已将我的asyctask中的内容添加到 mcodeList (声明为ArrayList<String>)。
我检查了内容和这是来自Log:

的示例 mcodeList
Response : > [08-00631 can be found in LAB A, 08-00635 can be found in LAB A]

这种情况当我得到 mcodeList 的内容时,我不希望它直接显示在弹出窗口中,所以我没有设置listview adapter onPostExecute。但我希望当我点击按钮弹出窗口时,listview的内容( mcodeList )将出现在弹出窗口中。

这是弹出窗口上的代码:

try {
        LinearLayout viewGroup = (LinearLayout) findViewById(R.id.popup_element);
        LayoutInflater inflater = (LayoutInflater) ListLocationActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.list_popup, viewGroup);

        pWindow = new PopupWindow();
        pWindow.setContentView(layout);
        pWindow.setWidth(300);
        pWindow.setHeight(200);
        pWindow.showAtLocation(layout, Gravity.CENTER, 0, 0);

        Log.d("Response : ", "> "+ mcodeList);
        // Updating parsed JSON data into listview
        ListView lv_popup = (ListView) findViewById(R.id.list_info);
        lv_popup.setAdapter(new ArrayAdapter<String>(this, R.layout.popup, R.id.mcode, mcodeList));

        btnClose = (Button)layout.findViewById(R.id.btn_close);
        btnClose.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                pWindow.dismiss();
            }
        });
    } catch(Exception e) {
        e.printStackTrace();
    }

这是我的弹出窗口布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/popup_element"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background ="#B2FFFF"
    android:orientation="vertical" >
<ListView android:id="@+id/list_info"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:divider="#B2E0FF"
    android:dividerHeight="1dp"/>

<Button android:id="@+id/btn_close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Close" />
</LinearLayout>

这是我的列表项布局:

 <TextView
    android:id="@+id/mcode"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

我的第一个问题是,当我点击按钮弹出窗口时,弹出窗口出现,但列表视图没有显示。第二个问题是当我点击关闭按钮时,我无法关闭弹出窗口,这就像我的程序崩溃一样,但它仍在运行。

我得到这个警告记录如下:

D/AbsListView(17047): Get MotionRecognitionManager
W/System.err(17047): java.lang.NullPointerException
W/System.err(17047):    at com.example.assetscanner.ListLocationActivity.initiatePopupWindow(ListLocationActivity.java:442)
W/System.err(17047):    at com.example.assetscanner.ListLocationActivity.infoAsset(ListLocationActivity.java:457)
W/System.err(17047):    at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(17047):    at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err(17047):    at android.view.View$1.onClick(View.java:3655)
W/System.err(17047):    at android.view.View.performClick(View.java:4162)
W/System.err(17047):    at android.view.View$PerformClick.run(View.java:17082)
W/System.err(17047):    at android.os.Handler.handleCallback(Handler.java:615)
W/System.err(17047):    at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err(17047):    at android.os.Looper.loop(Looper.java:137)
W/System.err(17047):    at android.app.ActivityThread.main(ActivityThread.java:4867)
W/System.err(17047):    at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(17047):    at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err(17047):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
W/System.err(17047):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
W/System.err(17047):    at dalvik.system.NativeStart.main(Native Method)

我从未发现过这样的错误,所以请有人帮助我。 感谢之前

1 个答案:

答案 0 :(得分:4)

首先你应该改变这个

ListView lv_popup = (ListView) findViewById(R.id.list_info);

使用

ListView lv_popup = (ListView) layout.findViewById(R.id.list_info);

这是因为listview来自虚增的layout