当前位置: 代码迷 >> Android >> ListView(this) 与findViewById(R.id.listview1)的差异什么
  详细解决方案

ListView(this) 与findViewById(R.id.listview1)的差异什么

热度:105   发布时间:2016-04-27 23:08:08.0
ListView(this) 与findViewById(R.id.listview1)的区别什么?
我定义了一个listview 资源
<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView1"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />
在代码中用到
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //listView = (ListView) findViewById(R.id.listview1);
    listView = new ListView(this);
    listView.setAdapter(new ArrayAdapter<String>(this, R.layout.activity_main, getData()));

setContentView(listView);



请问
   listView = (ListView) findViewById(R.id.listview1);
   和
   listView = new ListView(this);
的区别是什么?
我在在这里是否可以用listView = (ListView) findViewById(R.id.listview1);


------解决思路----------------------
可以的, findViewById 是从当前View或者说Root View中找到对应ID实例化的View组件。
直接setContentView 是设置一个View组件 或者 设置一个布局

直接实例化和在布局文件中 理论上都是实例化
------解决思路----------------------
activity_main 在 layout中的一个xml文件啊 
  相关解决方案