2011-12-26 5 views
0

나는 수학적인 벡터를 표시하는 쉬운 방법에 대한 필요성을 충족시키기 위해 사용자 정의보기를 만들었습니다. LinearLayout을 확장하고 값에 대한 ArrayList를 추가했습니다. 값이 변경 될 때마다 내 사용자 정의 메서드 redraw()를 호출하여 EditTexts를 LinearLayout에 추가합니다. 이렇게하면 값을 추가 한 후 기존의 모든 EditText가 다시 추가됩니다. LinearLayout을 지우거나 새로운 LinearLayout을 표시하는 방법은 무엇입니까? 여기사용자 정의보기에서 레이아웃 처리

일부 코드 :

public Vector(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    setWillNotDraw(false); 
    LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if (inflater != null) { 
     inflater.inflate(R.layout.vector, this); 
    } 
} 

public void redraw() { 
    for (Float value : getArray()) { 
     EditText edit = new EditText(getContext()); 
     edit.setLayoutParams(new ViewGroup.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.FILL_PARENT)); 
     edit.setText(value.toString()); 

     ((LinearLayout) findViewById(R.id.root)).addView(edit); 
    } 
} 

답변

1

당신은 ((LinearLayout) findViewById(R.id.root)).removeAllViews()를 사용하여 모든보기를 제거 할 수 있습니다. 그러나 기존 편집 텍스트보기에 새 값을 설정하고 여전히 필요한 경우에만 새보기를 추가 할 수 있다면 왜 모든 편집 텍스트를 다시 추가하고 싶습니까? 나는 너를 완전히 이해하지 못했다.

관련 문제