av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?

瀏覽:175日期:2024-09-11 09:33:11

問題描述

正如標題所言,View成員變量已經在Activity的onCreate方法中,通過findViewById方法初始化了。但在另一個類中,用通過new方法構造的Activity對象來執行封裝好的公有方法時,發現其中的View成員變量是空的。具體代碼如下(new MainActivity().select(selectCity)這句調用Activity的方法):android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?

錯誤類型是android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?

錯誤提示是指向下面這句android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?

然后,調試結果如下android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?

發現這里的View對象是為空的。然后,我換成發送廣播的方式,讓MainActivity接收廣播,這樣是可以的,調試結果如下:android - 為什么用new方法構造的Activity對象,其中的View成員變量是為空的?發現mCityTextView不是空的。

對比上面的情況,我覺得通過findViewById方法初始化的View對象,只屬于Activity這個類本身,所以由它使用是沒問題的。但是通過new方法構造的Activity對象,得到的是沒有初始化的View對象。所以究竟是怎么回事呢???

問題解答

回答1:

路子有點野。new MainActivity()并沒有走Activity的生命周期,比如你都是在onCreate()里初始化控件的,你直接調用select()當然空指針了。

回答2:

Activity, Service, ContentProvider三大組件都不能以new的方式獲取實例(“不正常的實例”會更恰當),Activity, Service, BroadcastReceiver, ContentProvider四大組件都存在生命周期,不建議在組件外調用定義的靜態變量或方法。

回答3:

不知道你說Activity是不是Android的Activity組件,其中Activity組件在構造的時候需要執行attach方法,傳入Context,Window等對象;View為空的原因我猜測是因為沒有attach Window對象;Window對象是所有View的容器

回答4:

這并不是你想要的activity。請傳遞該activity的引用。

回答5:

看代碼里面其實你自己在前面已經寫出來了getActivity()了,你把獲取到的這個Activity強轉成MainActivity就好了吧直接new一個Activity是沒有走生命周期方法的,并且這也不是你之前的那個MainActivity

回答6:

我這里的問題是因為沒有為變量設置static,所以new對象出來,變量會為空,要重新初始化。呃,基本知識沒過關。。但還是要感謝各位的解答!!

回答7:

這種情況用接口回調的方式不是更簡單嗎?

主站蜘蛛池模板: 欧美一级全黄 | 91在线视频在线观看 | 久久99蜜桃综合影院免费观看 | 人人澡人人射 | 久久精品国产亚洲 | 国产精品一二区 | 亚洲男人天堂 | 国产精品一区二区久久久久 | 亚洲成人精品久久 | 精品视频在线播放 | 午夜小电影 | 国产精品99久久久久久久久久久久 | 一区二区三区日韩 | 亚洲精品久久国产高清情趣图文 | 国产美女一区二区 | 国产精品免费看 | 精品国产乱码久久久久久闺蜜 | 欧美视频免费在线 | 国产精品一区在线 | 日韩伦理一区二区 | 天天躁天天操 | 国产在线一区二区三区 | 欧美极品视频在线观看 | 久久精品国产一区老色匹 | 成人在线播放网站 | 精品一二三 | 中文字幕欧美日韩一区 | 天堂精品视频 | 精品成人在线观看 | 久久久久久久久一区 | 日本 欧美 国产 | 欧美国产中文字幕 | 香蕉大人久久国产成人av | 国产精品视屏 | 亚洲乱码国产乱码精品精的特点 | 欧洲一区二区在线 | 午夜视频免费网站 | 国产欧美一区二区三区在线看 | 久久小视频 | 国产精品无码久久久久 | 国产在线视频一区二区董小宛性色 |