❶ android父控制項點擊,如何獲取事件源子控制項
假如你的標題使用textview顯示,你需要在adapter中的getview內定義一個textview為mtext,讓他等於當前顯示標題的textview,然後在按鈕的點擊事件中修改mtext的內容
❷ android遍歷界面上的所有控制項後,如何判斷控制項是什麼類型
可以通過它的類名來判斷:v.getClassName() == "Button"
也可以通過instanceof判斷:v instanceof Button
public class Main extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout loginLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main, null);
String pa="";//遍歷所有控制項
for (int i = 0; i < loginLayout.getChildCount(); i++)
{
View v=loginLayout.getChildAt(i);
//如何判斷是Button或者是TextBox
if(){
Object v = tabWidget.getChildAt(i);
if (v instanceof RelativeLayout)
{
}
}
}
}
❸ Android開發 怎麼在GridView的監聽事件外獲取子控制項
可以自定義adpter,adpter裡面的getView()方法里不是會初始化button嗎,然後再直接調用該button的實例,button.setOnClickListener(),在其監聽實踐中處理你要處理的東東, public View getView(int position, View convertView, ViewGroup parent) { Button button = findViewById..... button.setOnClickListener(new OnClickListener() { public void onClick(View v) { //處理事件 } }); }
❹ android 一個layout中有很多個子控制項,怎麼去獲得其中的一個控制項
一個layout就是一個容器,你可以放一些子控制項,當你要操作子控制項的時候,你就需要找對應的子控制項,再去操作它(操作比如設置字體,顏色,樣式等)。
可以通過findViewById()方法 來獲取,前提是,你的子控制項需要定義一個id,然後在通過該方法來尋找並操作它。
還可以通過findViewWithTag()方法來找到子控制項(前提是你第一次找到這個子控制項時,並設置一個tag),該方法一般用在activity調用adapter裡面填充布局裡面的子控制項。
❺ android 遍歷所有控制項
獲取總得TabLayout, 強轉成ViewGroup,傳入下面方法
private void getButtons(ViewGroup viewGroup) {
if (viewGroup == null) {
return;
}
int count = viewGroup.getChildCount();
for (int i = 0; i < count; i++) {
View view = viewGroup.getChildAt(i);
if (view instanceof Button) { // 若是Button記錄下
Button newDtv = (Button) view;
} else if (view instanceof ViewGroup) {
// 若是布局控制項(LinearLayout或RelativeLayout),繼續查詢子View
this.getButtons((ViewGroup) view);
}
}
}
❻ android中如何遍歷界面上的組件被選中
你先得到radioGroup 然後為 確定按鈕綁定一個onclick 事件 當點擊的時候調用
radioGroup.getCheckedRadioButtonId();
然後通過findViewById()得到被選中的radioButton
最後通過radioButton.getText()得到被選中按鈕的內容。
接著在textview中進行顯示就是了
❼ android中動態載入布局後,獲取子控制項的問題
沒有方法熟悉android機制的就應該知道android顯示一個控制項分為三個過程 onMeasure onlayout ondraw android是在這三個過程成功進行子控制項的處理的。 而Tipboard(Context context)這個方法執行的時候這三個方法都沒有執行 所以不可能在這個方法中獲取到子控制項
❽ Android程序員的較好的職業規劃應該是怎樣
Android程序員的職業規劃,怎麼說呢?一句話叫做:早知如此,又何必當初。命運有些是自己可以掌握的,有些可能需要運氣和機會。
一、路徑可達
先說說路徑可達這個詞吧?有些人會覺得他的路看不到未來,有些人就可以清晰的看到他的方向。如果你現在所做的工作過兩年會不會有所成長,達到你的目標。如果答案是否定的,那麼說明現在的工作是沒有上升通道的,就需要改變。當然安於現狀不思進取是另外一回事。時刻反思自己所走的路,然後迅速調整,可能會少走很多彎路,畢竟時間不可逆。
二、時間規劃
我有時候會想我五年後在哪裡?做什麼?大部分人對於這個都會比較模糊。因為時間跨度太大。五年時間相當於整個生命長河其實比較短,但在職業規劃中確是很長的段,特別是剛畢業的那五年。從時間規劃來講肯定會用到時間的切分。宏觀的東西只有落地到一件件事上才是有效的,才算得上完整的規劃。但是話又說回來人是有惰性的,人對於這種有限制的東西有天然的排斥感,執行起來非常痛苦,即使開始執行起來很有激情,過不了幾個月,所有的計劃都縮水了,這同時也導致了很多時間的浪費和做事情的盲目性。所以計劃的時效性和執行很重要,這里又會涉及一個詞:「執行力」。
沒有計劃也導致學習變成一個一個孤立的點,完全沒有串連性。因為你是想到學什麼學什麼,而不是計劃著學,一段時間後可能會有一些積累,但是永遠深度不夠。這可以做一個簡單的實驗,把自己腦子里的東西理一理,如果時間需要很長說明整體知識體系已經有些混亂,可以對比一下操作系統的磁碟整理。如果一個人能很好的管理時間那麼必成大牛。好學生好在哪裡,排除智商的因素外,就是時間管理和善於思考。我覺得我自己最大的問題:時間管理,自律性,溝通能力。這三塊是我覺得自己最缺乏一定程度上是致命的,很大程度上會決定我未來的所發展的高度。
三、項目經理還是架構師
在程序員中一直有個討論就是將來要做項目經理還是做架構師。這兩條路的側重點不一樣,所以積累的東西也可能不同。項目經理更強調綜合能力,比如說協調能力,溝通能力等一系列偏管理的能力。而架構師可能更專注於技術本身,技術上的宏觀方向。兩條路有重疊,但是更多的是區別。有些項目經理可能就不會寫代碼。但是同樣可以帶好一個項目,一個團隊。
我曾經也問自己要是以後這兩條路走哪條,其實都可以嘗試一下。比如說給一個項目讓我帶帶,我能否把它帶好,其實需要機會,同時也需要自己去爭取這樣的機會。所以我的答案就是如果有機會的話兩條路都可以嘗試走走,就是兩個方向的一些能力都可以進行積累。很多人認為項目經理是一個職位,我倒覺得是動態的,這個項目中你做項目經理,另外一個項目中可能又是開發工程師。所以不永遠是項目經理,也不永遠是開發工程師。
就程序員而言,專注技術是沒有任何問題的,先技術後管理。管理這個東西總的說有點虛無飄渺,各都有各的一套理論,比較難以評估。但是技術是可測量的,通過一定的努力技術水平都會有定的躍升。記得在《肖申克的救贖》裡面說到地質的形成只需要兩個條件:壓力和時間。其實對於學技術也是一樣的。只要肯學一定會達到某個水平。到大牛級別的確實需要一些悟性和天分。
四、我的選擇
我為什麼覺得自己應該走架構師這條路,這和我職業終極目標是契合的。這里先說一下架構師做什麼?架構師負責整個項目甚至整個系統的構架(這一句話等於廢話)。一般型的項目可能這個設計項目就做掉甚至可能就不需要架構。但是系統復雜度上升的時候,會涉及到系統之間的交互,還有技術的可行性和整個設計的方案。這個時候架構師就出場了。另外的工作就是承擔一定的培養新人的工作。所以架構師都需要具備比較好的口才,很多人都說程序員不會說話,錯了,那是低端的,到了高端的程序員口才都很好,看一下那些程序員大會中侃侃而談的架構師們,是不是有種「高端大氣上檔次」的感覺。這後面會發現有一個發展方向就是「培訓師」,還可以寫書,其實這些都可能是一些「副產品」。技術到一定的境界很多事情到都是水到渠成。
架構師寫代碼嗎?當然寫。他們肯定不會寫那些簡單的代碼,他們一般寫什麼代碼?框架,一般來講優秀的框架都是一個人或者極少人寫出來的。比如說Linux的核心就是一個人寫出來的。好的代碼絕不是人堆出來的。你給100個初級程序員也整不出一個Struts來。這里會衍生出另外一條路,就是開源框架,很多牛人都是開源社區的愛好者。都或多或少的參與了一些開源項目。甚至把自己寫的一些東西開源出來。一般來講能做到這個級別那是相當厲害的了。
五、領域方向
我記得以前總有人問我你最擅長的領域是什麼?這個問題一問我就懵了,因為我從來就沒想過這個問題。可能本身還沒到分領域的級別,還處於一種「原始積累」階段。技術學到一定階段的時候是分領域的。領域之間會有一些交叉。
我所知道的大方向是「高性能,大數據量,移到平台「。這是我給Java這所分的三個方向。其實我上面所說的三個方向不一定是同一個維度。但是我認為寫Java的如果沒有沾上這三個方向中的一個,一定沒有前途。高性能和大數據量的處理需要比較多的技術儲備。很多人說寫個Java就是CRUD(嚴格來講,對於計算機本身所有的操作都是CRUD)。可是在高性能情況下所涉及的問題一下成指數級增長。各種「水平擴展」,「服務化」,「容災」,」緩存」等各種牛B的詞彙就來了,你寫一般的CRUD最多也就知道個SSH,這是不一樣的。比如說做大數據量的處理一定會知道Hadoop,然後就是雲計算,雲存儲。反正什麼牛B什麼來。移動平台和上面我所說的維度不一樣,因為移動平台相對應的是PC平台。但是由於移動平台的發展時間很短。所以能搭上這趟快車也有不錯的發展。要是早些年(2012年以前)進入移動平台的開發,現在同水平的程序員工資肯定更高。這是平台發展所帶來的紅利。雖然三年前我預見到了移動平台的無可限量,但是那時候就像一個一無所有的人,還管它什麼移動平台還是PC平台,能寫代碼做項目就OK。以至於我學了一個月的Android就偃旗息鼓。
不管怎麼樣技術的底層都是一樣的,所以扎實的基礎是必要的,這就是為什麼演算法和數據結構是永恆不衰的。很多人說演算法和數據結構無用那就是無知的表現。這個無知就像在討論讀大學有沒有用一樣。
六、總結
上面所說的一些東西可能都會比較虛,很多人都可能明白其中的道道,比如說到時間管理,這個估計從學生時代就在講。但是真正的執行還是千差萬別。所以又回歸到哪裡?回歸到人本身。後來我想明白一件事情,即使道理再明白,沒有好的執行仍然等於空談。這里我回想起劉未鵬的《暗時間》。裡面非常細致的講了對於時間的管理。這個我讀大學的時候同樣在一本書《讀大學,究竟讀什麼》裡面也有所論述。當然兩個方向是不一樣的,一個是程序員的思維,另外一個是文科生的思維。但是道理只有一個,時間利用率的本質是什麼。
另外就是實踐,強烈的實踐。我記得大學的時候讀《人性的弱點》真是心潮澎湃,可是過不了多久我就忘了書中的內容。所以沒有把書中的一些東西深刻的印記在腦海里並轉化成你自己的東西,它永遠只是知識。
❾ android的ViewpPger中,如何遍歷得到下面布局問加你中的所有控制項,方便對空間進行統一管理
你可創建一個集合來保存你的幾個布局:private ArrayList<View> pageViews;
pageViews = new ArrayList<View>();
pageViews.add(v1);
pageViews.add(v2);
pageViews.add(v3);
pagerAdapter = new ViewPagerAdapter(pageViews);
這里創建Adapter的時候把這個集合傳進去。
然後:uiControl = new UIControlForIntegrate(handler, OnAppPressedListener,
this);
uiControl.setResource(pageViews);//控制ui的地方也把這個集合傳進去。這樣它們指向的都是一個對象。你可以很方便的控制UI。或者你沒有控制UI的類。直接在你的主類裡面也可直接用這個集合里的View.