如何在Android中使用setContentView()

时间:2015-02-04 11:58:30

标签: android android-layout setcontentview

我在活动中有一个带页脚的列表视图。

我想做的是:

  1. 制作一个列表视图。
  2. 将文字视图添加到listview的页脚
  3. 将页脚应用于列表视图。
  4. 以下是活动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);
        }
    }
    

    有两个.xml文件。(一个用于包含listview的活动,一个用于页脚) 要添加textview,我使用setContentView(R.layout.refer_footer);并成功添加了textview。但是当我运行一个应用程序时,它只显示页脚的内容。(而不是listview)所以我使用setContentView(R.layout.activvity_lecture_refer_room);然后应用程序不显示任何内容。

    如何显示包含页脚的lsitview?

1 个答案:

答案 0 :(得分:2)

下面:

setContentView(R.layout.refer_footer);

无需使用setContentView布局调用refer_footer,因为refer_footer布局适用于使用addFooterView添加的ListView页脚:

// 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);