2012-01-24 5 views
1

를 만드는 방법을 모든 사람은 안드로이드 : 사용자 지정 구성 요소

방법

  1. 패스는 XML에서 속성 XML과 자바 파일에 사용자 지정 구성 요소 (이 내가 어느 정도 완료)

  2. 을 만들기 위해, 나를 인도 해주십시오
  3. 새 customClass() - 생성자 메서드에서 속성을 동적으로 전달하는 방법. -이 지점을 구현하는 방법을 모르겠다.

예 : 2 개의 textview가 포함 된 맞춤 구성 요소를 하나의 구성 요소로 만들었습니다. xml에서는 xml 속성에 따라 두 개의 구성 요소를 만들었습니다. 이제 java 코드 에 의해 두 개의 새 구성 요소를 만들고 싶습니다. 내 customClass.java의 생성자를 호출하여 Java 코드에서 동적으로 새 구성 요소를 작성하는 방법과 뷰에서이를 표시하는 방법 (상대 레이아웃이라고 말하십시오)을 참조하십시오. 나는 어떤 링크 나 블로그를 제공한다.

나는이 1 주일간 한,하지만 난 어떤 솔루션이 나에게 도움을 주시기 바랍니다 얻을 didnt는

답변

1

매우 간단합니다 :

: 귀하의 레이아웃 XML 파일에

단순히 XML 코드의 다음 줄을 넣어

public class MyComponent extends RelativeLayout { 
    public MyComponent(Context context, AttributeSet attr) { 
    super(context,attr); 
    } 

    @Override 
    public void onFinishInflate() { 
    // this is the right point to do some things with View objects, 
    // as example childs of THIS View object 
    } 
} 

Reme :

<com.example.project.MyComponent 
    android:id="@+id/myid" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 
이제

, 구성 요소로라는 이름의 클래스를 작성 생성자 만들기 :이 구성자는 LayoutInflater에서 구성 요소를 찾으려면 필요합니다. 그리고 필요할 때 super (...)를 부르는 것을 잊지 마십시오.

+0

나는 당신의 사용자 정의 태그가 작동하는지 확실하지 오전하지만 난이 작동하는지 알고 : Lumis

+0

내 예제는 상대적 레이아웃을 확장합니다. ImageViews, TextViews 또는 기타와 같은 하위 요소를 채우지 않아야합니다.) – Andreas

+0

@Andreas Bf - 답장을 보내 주셔서 감사합니다. public MyComponent (Context context, AttributeSet attr)이 생성자는 xml 파일에서 attr을 전달할 때 호출됩니다. 이 부분을 완료했습니다. Java 코드에서 구성 요소를 만들려고합니다 (xml 레이아웃에서가 아님). 생성자를 호출하는 것과 같습니다. public MyComponent (Context context) {...} java 코드에서 값/attr을 전달해야합니다. – Viran

0

매개 변수에 컨텍스트가있는 생성자를 호출 한 다음 getter setter를 사용하여 특성을 설정하면됩니다. 당신은 Android tech point

MyComponent mycomponent = new MyComponent(context); 
myComponent.setFirstTextView("text1"); 
myComponent.setSecondTextView("text2"); 

에 좋은 자습서를 찾을 수 있습니다 그리고 마지막으로

layout.addView(myComponent); 
관련 문제