2012-02-29 55 views
0

我有level1.xml具有相对布局和图像视图作为孩子,我想找回这些意见progrmatically这里设置他们的利润是我的XML空异常错误而孩子的检索阵列的意见

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/Level1Layout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="objectClick" 
      android:background="@drawable/hh_gmw_03"> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="593dp" 
     android:layout_marginLeft="998dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image1" 
     android:src="@drawable/hht3l01"/> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="39dp" 
     android:layout_marginLeft="20dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image1" 
     android:src="@drawable/hht3l02" /> 

    <ImageView 
     android:id="@+id/imageView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="153dp" 
     android:layout_marginLeft="497dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image3" 
     android:src="@drawable/hht3l03" /> 

    <ImageView 
     android:id="@+id/imageView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="524dp" 
     android:layout_marginLeft="998dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image4" 
     android:src="@drawable/hht3l04" /> 

    <ImageView 
     android:id="@+id/imageView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="183dp" 
     android:layout_marginLeft="715dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image5" 
     android:src="@drawable/hht3l05" /> 

    <ImageView 
     android:id="@+id/imageView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="413dp" 
     android:layout_marginLeft="557dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image6" 
     android:src="@drawable/hht3l06" /> 

    <ImageView 
     android:id="@+id/imageView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="53dp" 
     android:layout_marginLeft="532dp" 
     android:onClick="objectClick" 
     android:contentDescription="Image1" 
     android:tag="Image7" 
     android:src="@drawable/hht3l07" /> 
</RelativeLayout> 

这里是我为ExampleActivity

public class ExampleActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ImageView[] Objects = (ImageView[]) getViewArrays(R.layout.level1); 
    Log.d("Check","Objects" + Objects.toString()); 
} 



public View[] getViewArrays(int resid) 
{ 
    ViewGroup layout = (ViewGroup) this.findViewById(resid); 

    View[] views = new View[layout.getChildCount()]; 

    for (int i = 0; i < layout.getChildCount(); i++) { 
     views[i] = layout.getChildAt(i); 
    } 

    return views; 
} 

public int[] getViewIds(int resid) 
{ 
    ViewGroup layout = (ViewGroup) this.findViewById(resid); 

    int[] ids = new int[layout.getChildCount()]; 

    for (int i = 0; i < layout.getChildCount(); i++) { 
     ids[i] = layout.getChildAt(i).getId(); 
    } 

    return ids; 
} 

}

这是给我空异常错误在该行 查看[] =意见新的View [layout.getChildCoun T()]; ......为什么我的布局没有找到?

回答

1

是你的xml文件main.xml吗? 那么你应该取代这一行:

ImageView[] Objects = (ImageView[]) getViewArrays(R.layout.level1); 

通过这样的:

ImageView[] Objects = (ImageView[]) getViewArrays(R.id.Level1Layout); 

的问题是,你给的参数布局xml文件,这就是为什么你有一个例外:你必须给一个查看ID。我自己

0

找到答案....我有删除this.findviewbyid()...而不是只findviewbyID

但现在返回查看,而不是ImageView的[]。它说View []不能被映射到Imageview []