前提・実現したいこと
PopupWindowにてListViewを使いたいと思っています。
発生している問題・エラーメッセージ
実行した所ListViewは表示されるのですがテキストが表示されません
どこがおかしいのでしょうか?
追記
2019/12/05 13:23
行をタップするとテキストが表示されました。
PopupWindowが表示される際にタップしなくても表示されるようにしたいです。
よろしくお願い致します。
該当のソースコード
PopupWindowのレイアウト
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="8dp"> <!-- ヘッダー表示部 --> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="top" android:background="@color/yellow"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:gravity="top|center" android:text="<届け先・グルーピングNo.>" android:textColor="#000000" android:textSize="32sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="top" android:background="@color/yellow"> </LinearLayout> <!-- メイン表示部(タイトル) --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/title1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/dp_s" android:layout_marginBottom="@dimen/dp_s" android:layout_weight="1" android:layout_gravity="center" android:background="@color/title" android:gravity="center" android:padding="@dimen/dp_m" android:text="\nタイトル1\n" android:textColor="#000000" android:textSize="@dimen/sp_s" /> <TextView android:id="@+id/title2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/dp_s" android:layout_marginBottom="@dimen/dp_s" android:layout_weight="1" android:layout_gravity="center" android:background="@color/title" android:gravity="center" android:padding="@dimen/dp_m" android:text="\nタイトル2.\n" android:textColor="#000000" android:textSize="@dimen/sp_s" /> <TextView android:id="@+id/title3" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/dp_s" android:layout_marginBottom="@dimen/dp_s" android:layout_weight="1" android:layout_gravity="center" android:background="@color/title" android:gravity="center" android:padding="@dimen/dp_m" android:text="\nタイトル3\n" android:textColor="#000000" android:textSize="@dimen/sp_s" /> </LinearLayout> <!-- メイン表示部(明細) --> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="5dp" android:background="@color/white" android:layout_weight="1" /> <!-- ボタン表示部 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="top|center" android:visibility="visible" android:background="@color/yellow"> <Button android:id="@+id/close_button" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="top|center" android:textSize="28sp" android:text="閉じる" /> </LinearLayout> </LinearLayout>
Javaのソースコード
public void makeDeliveredtoData(int detailNo, List<Data> dataList, View v,Resources res) { int gdetailNo = detailNo; ArrayList<DeliveredtoData> deloveredtoList = new ArrayList<DeliveredtoData>(); DeliveredtoData data; Data work; Data target; for (int i = 0; i <= dataList.size() - 1; i++) { target = new Data(); target = dataList.get(i); if(detailNo == target.getShuyakuFlg()){ data = new DeliveredtoData(); work = dataList.get(i); data.setSeihin(work.getSeihin()); data.setDetailNo(work.getDetailNo()); data.setGroupNo(work.getGroupNo()); data.setDestinationName(work.getDestinationName()); data.setLoke(work.getLoke()); deloveredtoList.add(data); } } final ArrayList rows = new ArrayList(); for (int i = 0; i <= deloveredtoList.size() - 1; i++) { DeliveredtoData deloveredtoData = new DeliveredtoData(); deloveredtoData = deloveredtoList.get(i); rows.add("あああ"); } mPopupWindow = new PopupWindow(con); //1 一般的な方法 LayoutInflater inflater = LayoutInflater.from(con); // レイアウト設定 View popupView = inflater.inflate(R.layout.popup_layout, null); popupView.findViewById(R.id.close_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mPopupWindow.isShowing()) { mPopupWindow.dismiss(); } } }); ListView listView = new ListView(con); listView = (ListView)popupView.findViewById(R.id.listView); mPopupWindow.setContentView(popupView); // 背景設定 mPopupWindow.setBackgroundDrawable(res.getDrawable(R.drawable.popup_background)); // タップ時に他のViewでキャッチされないための設定 mPopupWindow.setOutsideTouchable(true); mPopupWindow.setFocusable(true); // 表示サイズの設定 今回は幅800dp float width = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 800, res.getDisplayMetrics()); mPopupWindow.setWindowLayoutMode((int) width, WindowManager.LayoutParams.WRAP_CONTENT); mPopupWindow.setWidth((int) width); mPopupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); //ArrayAdapter<String> adapter = new ArrayAdapter<String>(con, android.R.layout.simple_list_item_1); ArrayAdapter adapter = new ArrayAdapter(con, android.R.layout.simple_expandable_list_item_1, rows); //Adapterの指定 listView.setAdapter(adapter); // 画面中央に表示 mPopupWindow.showAtLocation(v, Gravity.CENTER, 0, 0); }
回答1件
あなたの回答
tips
プレビュー