0

アクティビティにフッター付きのリストビューがあります。

私がやりたいことは次のとおりです。

  1. リストビューを作成します。
  2. リストビューのフッターにテキストビューを追加
  3. リストビューにフッターを適用します。

以下は活動のonCreate方法です

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lecture_refer_room);

    // making listview...
    ListView listView = (ListView) findViewById(R.id.referList);
    ...
    ...
    String[] from = {"line1", "line2"};
    int[] to = {android.R.id.text1, android.R.id.text2};
    SimpleAdapter adapter = new SimpleAdapter(this, mapList,
              android.R.layout.simple_list_item_2, from, to);

           // footer_layout is in refer_footer.xml
     View footer = getLayoutInflater().inflate(R.layout.refer_footer, null, false);
    LinearLayout ll = (LinearLayout)findViewById(R.id.footer_layout);

    TextView tv= new TextView(this);
    tv.setText(element.text());
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
    tv.setVisibility(View.VISIBLE);
    ll.addView(tv);


        listView.addFooterView(footer);

        listView.setAdapter(adapter);
        //setContentView(R.layout.activity_lecture_refer_room);
    }
}

2 つの .xml ファイルがあります (1 つはリストビューを含むアクティビティ用、もう 1 つはフッター用) setContentView(R.layout.refer_footer);。しかし、アプリを実行すると、フッターのコンテンツのみが表示されます(リストビューではありません)。そのためsetContentView(R.layout.activvity_lecture_refer_room);、アプリは何も表示しません。

フッターを含む lsitview を表示するにはどうすればよいですか?

4

1 に答える 1

2

ここ:

setContentView(R.layout.refer_footer);

レイアウトは、次を使用して追加する ListView フッター用であるため、setContentViewレイアウトで呼び出す必要はありません。refer_footerrefer_footeraddFooterView

// inflate foooter layout 
 View footer = getLayoutInflater().inflate(R.layout.refer_footer,
                                                             null, false);
  // get footer_layout from footer
  LinearLayout ll = (LinearLayout)footer.findViewById(R.id.footer_layout);
    // create TextView
    TextView tv= new TextView(this);
    tv.setText(element.text());
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
    tv.setVisibility(View.VISIBLE);
    // add textview to footer_layout
    ll.addView(textview);
    // set layout for footer
    listView.addFooterView(footer);
于 2015-02-04T12:00:52.920 に答える