2013-02-16 2 views
0

조각에서 텍스트를 전달할 수 있도록 사용자 지정 TextView에서 생성자를 설정하려면 어떻게해야합니까?조각에서 사용자 지정 TextView로 텍스트 제공

은 즉, 내 조각 사용자 지정보기에 (Fragment1) (뷰 1)에서 텍스트를 보내는 방법을 혼란 스러워요 :

public class View1 extends TextView { 

    //constructors: 
    public View1(Context context, AttributeSet ats, int ds) { 
     super(context, ats, ds); 
     init(); 
    } 

    public View1(Context context) { 
     super(context); 
     init(); 
    } 

    public View1(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 
... 
canvas.drawText(myString, margin1, margin2, paint); //myString is from Fragment1 
.... 
} 

내가 비슷한 질문 here을 물었지만, 정말하지 않았다 많은 도움. 예제 코드는 내 혼란을 없애기 위해 먼 길을 간다. 미리 감사드립니다!

+1

20 시간 후에 다시 같은 질문을하는 것이 좋은지 잘 모르겠습니다. – sstn

+1

문자열을 가져 오기 위해'getText(). toString()'을 사용하지 않는 이유는 무엇입니까? –

+0

아마도 내가 질문을 잘하는 것이 아니므로 다시 묻는 중입니다. 변수 (문자열)가 조각에서 계산됩니다. 하지만 어떻게 사용자 정의보기로 가져올 수 있습니까? 나는 이미 문자열이기 때문에 getText(). toString()이 도움이 될 것입니다. – lynvie

답변

0

어쨌든 TextView을 (를) 확장하고 있습니다. 언급 된 A - C와 마찬가지로 과 setText()을 사용하여 텍스트를 가져오고 설정할 수 있습니다.

TextView을 사용하여 사용자 정의보기/위젯을 구현하는 것이 좋은지 잘 모르겠습니다. TextView은 포맷팅, 아이콘/드로어 블 디스플레이, 클릭/로직 로직 등 모든 종류의 물건들을 가지고 있기 때문에보기가 더 좋은 출발점이 될 수 있습니다.

당신이 원하는 경우 표준 생성자를 정의해야합니다. 시스템은 XML 레이아웃에서 컴포넌트를 인스턴스화/확장합니다. 그런 다음 다른 모든 컨트롤과 마찬가지로 데이터에 표준 Getter/Setter를 사용할 수 있습니다.

코드에서 직접 위젯/뷰를 인스턴스화하면 원하는대로 생성자를 자유롭게 정의 할 수 있습니다.

+0

좋아, 내 진짜 혼란은 조각에서 문자열을 얻는 방법이라고 생각해? 프래그먼트는 기본 생성자 만 사용하기 때문에 Fragment.myString과 같은 호출을 할 수 없습니다. – lynvie

+0

@lynvie 그래서 setter 메소드의 문제점은 무엇입니까? 이것이 다른 모든 위젯이하는 방법입니다. 왜 이것이 여기에서 작동해서는 안되는지 나는 이해하지 못한다. – sstn

+0

좋아, 내가 떠날 필요가 있기 때문에 몇 시간 후에 코드를 다시 살펴볼 것이다. 도와 주셔서 감사합니다. – lynvie

관련 문제