Activityのコントロールを巡回

1876 ワード

Activityのコントロールを巡回するには、ActivityのcontentViewを取得し、getChildCount()とgetChildAt()を使用して逐次巡回します.

Activityのすべてのコントロールを巡回し、数を統計します。

  • ActivityのcontentView
  • を最初に取得
    // vGroup activity.xml , mRootView 。
    ViewGroup vGroup = (ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content);
    ViewGroup mRootView = (ViewGroup)vGroup.getChildAt(0);
    
  • サブコントロールを巡回し、レイアウトコントロールであれば再帰的な方法でサブコントロールを巡回します.
  •     private int count = 0;  // , 
        //rootView  mRootView, Activity 
        private void traversalView(ViewGroup rootView) {
            Log.d("Traversal","start rootView:"+rootView);
            for(int i = 0; i

    Activity内のすべての特定のタイプのコントロールを巡回

  • Activity全体のButtonコントロールを巡回する必要があると仮定し、上記の第2ステップのコードを少し変更することができます.変更後のコードは以下の通りです.
  •     private int btnCount = 0;// Button , 
        //rootView  mRootView
        private void traversalView(ViewGroup rootView) {
            Log.d("Traversal","start rootView:"+rootView);
            for(int i = 0; i
  • もちろん統計数量操作だけでなく、すべてのボタンの属性を設定することもできます:
  •     private int btnCount = 0;// , 
        //rootView  mRootView
        private void traversalView(ViewGroup rootView) {
            for(int i = 0; i