findViewById()返回null

                Log.i("===","q");
		Log.i("===",""+R.id.mainlayout);
		Log.i("===",""+findViewById(R.id.mainlayout));
		final PopupWindow popupWindow = new PopupWindow(
	        view1.findViewById(R.id.mainlayout), 200, 300);

做手勢識別,彈出popwindow,不過加載自定義的layout的時候,總是報findviewbyid()nullpointer,用log測試的時候,說它返回的是null。。無語,找了好久,想了好久,總是不對。。一晚上過去了實在沒有辦法了,瘋狂百度,google。。網上說的原因大概有三點:

1:eclipse的原因,只需要clean一下即可。

2:findviewbyid在setcontentview之前,沒有找到。解決方案是吧findviewbyid放在後面。

3:findviewbyid是在當前的context對應的layout下面找id,跨xml或者activitity的話就會返回null,所以要在自己對應的xml裏面去findview

我的是在一個自定義的view裏面找的id,要尋找main.xml裏面的id,所以總要報錯。

View view1=View.inflate(con,R.layout.main,null);  
		
		final PopupWindow popupWindow = new PopupWindow(
				view1.findViewById(R.id.mainlayout), 200, 300);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章