2011-08-11 3 views
0

내 ViewGroup을 만들었습니다. 이미 View에 위젯을 추가했는데 Eclipse Design Editor에서 오류가 발생합니다 (더 빠르고 더 나은 개발을 위해 미리보기가 필요함).사용자 지정보기 그룹

this.addView(new Button(mcontext), 
      new LinearLayout.LayoutParams(
        LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT)); 

main.xml에

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<...MyViewGroup android:layout_height="match_parent" android:layout_width="match_parent" android:layout_margin="2dip" android:id="@+id/Token01"> </...MyViewGroup> 
</LinearLayout> 

내가 에뮬레이터에서 볼하지는 다음의 LayoutParams와

public class MyViewGroup extends LinearLayout { 
    public MyViewGroup(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     this.addView(new EditText(context)); // The Error Line 
    } 
... 
} 

는 아무것도 변경하지는. "오류 라인"을 제거하면 Designer에 오류가 발생하지 않습니다. 내가 실패했거나 Eclipse 디자이너를 렌더링 할 수 없습니까? 하지만 왜 에뮬레이터/장치에서 볼 수 없습니까? 내 대상은 사용자 정의보기 및 XML이없는 ViewGroup을 사용하여이 부분을 만듭니다.

나는 당신이 나를 도울 수 있고 나의 나쁜 영어로 유감스럽게 생각한다.

감사합니다.

답변

0

정상적으로 이해하면 코드가 실행되는 동안 오류가 발생하지 않지만 시각적 편집기가 올바르게 렌더링하지 못합니다.
한때 비슷한 문제가 있었지만 (정확히 기억하지 못하는 경우가 있습니다) 시각적 편집기 엔진을 Honeycomb 버전으로 변경하여 해결할 수있었습니다.
이렇게하려면 먼저 Honeycomb SDK (API 11 이상)를 설치해야합니다. 그런 다음 오른쪽 상단의 비주얼 편집기에서 사용하는 SDK를 선택할 수 있습니다. 3.x로 변경하십시오. 어쩌면 이것은 또한 당신을 위해 작동합니다.

+0

답변 해 주셔서 감사합니다. 코드는 절대 실행되지 않습니다. 비주얼 편집기 오류 표시 및 에뮬레이터에서 EditText를 표시하지 않습니다. – Tim

0

다음을 시도해 보니 Android 2.3.1 이상에서는 매력적으로 작동합니다. 2.2 이전에서는 작동하지 않았습니다.

public class MyViewGroup extends LinearLayout { 
    public MyViewGroup(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     if (isInEditMode()) { 
     final EditText editText = new EditText(context); 
     editText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     addView(editText); 
     } 
    } 
} 

isInEditMode()의 사용법에 유의하십시오.