2012-09-25 3 views
2

이미 일부 버튼이 포함 된 XML 레이아웃이 있습니다. 이제 동일한 레이아웃에 텍스트 뷰를 추가하고 싶지만 자바 클래스에는 텍스트 뷰를 추가하고 싶습니다. "addView"줄까지 오류가 발생하지 않습니다. 누군가 Java에서 기존 XML 레이아웃에 추가하는 더 좋은 방법을 말해 줄 수 있다면 감사하겠습니다. 이미 XML 레이아웃이 있기 때문에Java의 XML 레이아웃에 뷰 추가

public class MyActivity extends Activity{ 
TextView textview; 
RelativeLayout layout; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
layout=(RelativeLayout)findViewById(R.id.mylayout); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParam(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
textview=new TextView(this); 
textview.setId(16); 
textview.setText("Help"); 
layout.addView(textview, params); 
setContentView(layout); 
} 

답변

2

귀하의 코드는 다음과 같이해야합니다, 당신은 첫 번째 XML 레이아웃의 setContent 다음 RelativeLayout의 새로운보기를 추가해야합니다.

public class MyActivity extends Activity{ 

TextView textview; 
RelativeLayout layout; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.file_name); 
    layout=(RelativeLayout)findViewById(R.id.mylayout); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParam(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
    textview=new TextView(this); 
    textview.setId(16); 
    textview.setText("Help"); 
    layout.addView(textview, params); 
} 
+0

감사합니다. 또한 자바로 기존의 XML 레이아웃에 추가하는보다 편리한 방법을 알고 계신가요? – AndOne

+0

이것이 가장 편리한 방법입니다. 왜냐하면 이미 레이아웃 파일이 존재한다면 뷰를 설정해야하기 때문입니다. 다음 단계는 UI의 새로운 동적 요소를 추가해야하는 레이아웃을 얻는 것입니다. 그래서 이것은 꽤 많이 있습니다. 더 많은 것을 알고 싶다면 http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ – VendettaDroid

+0

또한 안드로이드 SDK의 APIDemos에서 예제를 살펴볼 수 있습니다. 동적보기를 추가하는 예는 거의 없습니다. 그러나 코드는 거의 동일합니다. – VendettaDroid

관련 문제