请教关于findviewbyid 为null的有关问题
请问关于findviewbyid 为null的问题
在开发一个系统的过程中,开发一个系统,php+mysql+ android,使用http协议
在mainactivity.java里边 建立一个新线程,然后再线程里边登录。
登录后,调转到 maininterface.java 界面,此界面有一个 icon(sell),
当点击icon(sell)能跳转到 sellinformation的界面。
但是在 sellinformation.java里边 oncreate()函数 里边 当 findViewById的时候 为空。
即
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bid);
。。。。
listView11 = (ListView) findViewById(R.id.listView1);
Log.d(TAG,"+oncreate:(ListView) findViewById(R.id.listView1) ="+listView11);
。。。。。
。。
}
通过打log得知 listView11为null的,但是 已经在layout目录下设置了 listview的xml文件啦。
为什么会这样的呢? (百度下,网上有的说是:由于Android不允许在新线程中访问Activity里的界面组件,所以你的listView是null.可通过AsyncTask的构造方法传入listView,然后在onPostExecute操作listView(http://ask.csdn.net/questions/1116))
请问应该怎么处理呢?
请会的朋友麻烦帮忙回答,先谢啦。
在layout目录下有这么一个selliinfor.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
------解决思路----------------------
listView1 不是布局在 sellinformation 页面上的啊
------解决思路----------------------
setContentView(R.layout.activity_bid);
listView11 = (ListView) findViewById(R.id.listView1);
R.id.listView1这个id必须在.activity_bid里,或者说activity_bid.xml里必须有个id为listView1的,不然就是空指针,而你的listView1在selliinfor.xml里
------解决思路----------------------
setContentView(R.layout.selliinfor);
------解决思路----------------------
正解
------解决思路----------------------
selliinfor.xml 这里有问题
在开发一个系统的过程中,开发一个系统,php+mysql+ android,使用http协议
在mainactivity.java里边 建立一个新线程,然后再线程里边登录。
登录后,调转到 maininterface.java 界面,此界面有一个 icon(sell),
当点击icon(sell)能跳转到 sellinformation的界面。
但是在 sellinformation.java里边 oncreate()函数 里边 当 findViewById的时候 为空。
即
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bid);
。。。。
listView11 = (ListView) findViewById(R.id.listView1);
Log.d(TAG,"+oncreate:(ListView) findViewById(R.id.listView1) ="+listView11);
。。。。。
。。
}
通过打log得知 listView11为null的,但是 已经在layout目录下设置了 listview的xml文件啦。
为什么会这样的呢? (百度下,网上有的说是:由于Android不允许在新线程中访问Activity里的界面组件,所以你的listView是null.可通过AsyncTask的构造方法传入listView,然后在onPostExecute操作listView(http://ask.csdn.net/questions/1116))
请问应该怎么处理呢?
请会的朋友麻烦帮忙回答,先谢啦。
在layout目录下有这么一个selliinfor.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
------解决思路----------------------
listView1 不是布局在 sellinformation 页面上的啊
------解决思路----------------------
setContentView(R.layout.activity_bid);
listView11 = (ListView) findViewById(R.id.listView1);
R.id.listView1这个id必须在.activity_bid里,或者说activity_bid.xml里必须有个id为listView1的,不然就是空指针,而你的listView1在selliinfor.xml里
------解决思路----------------------
setContentView(R.layout.selliinfor);
------解决思路----------------------
正解
------解决思路----------------------
selliinfor.xml 这里有问题