0

상대 레이아웃에 추가 할 뷰를 생성하고 상대 레이아웃 내의 뷰를 기본 레이아웃에 표시하려고합니다. 그러면 내부에 요소가있는 컨테이너 상자처럼 보이고 이전 요소 아래에 같은 요소가있는 레이아웃을 추가 할 수 있기를 원합니다. 여기에 지금까지 가지고있는 코드가 있지만 버튼 클릭으로 새로운 레이아웃을 만들 때 테스트하기 때문에 onClick 오류가 발생합니다. 이것이 Fragment 클래스에 있음을 명심하십시오. 그리고 이것을 수행하기 위해 ActionBarSherlock을 사용하고 있습니다. 아무도 나를 도울 수 없거나 어떤 조언을 해주실 수 있습니까? 주석 처리 된 코드는 내가 전에 거기에 있었다 그것은 그들과 함께 작동하지 않았다,하지만 난이 일을해야한다고 생각 무엇안드로이드에 대한 프로그래밍 방식으로 상대 레이아웃에 뷰를 추가하십시오.

RelativeLayout layout = new RelativeLayout(getSherlockActivity()); 
RelativeLayout layout2 = new RelativeLayout(getSherlockActivity()); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
layout.setLayoutParams(layoutParams); 
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params4 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params5 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params6 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams containerParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

//Main layout 
tv1 = new TextView(getSherlockActivity()); 
params1.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
params1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
tv1.setId(1); 
tv1.setText("textView1"); 

tv2 = new TextView(getSherlockActivity()); 
params2.addRule(RelativeLayout.BELOW, tv1.getId()); 
params2.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
params2.setMargins(0, 0, 0, 16); 
tv2.setId(2); 
tv2.setText("textView2"); 

//Container layout 
layout2.setBackgroundResource(R.color.display_panels); 
layout2.setPadding(10, 0, 10, 10); 
containerParams.addRule(RelativeLayout.ALIGN_LEFT, tv2.getId()); 
containerParams.addRule(RelativeLayout.ALIGN_RIGHT, tv1.getId()); 
containerParams.addRule(RelativeLayout.BELOW, tv2.getId()); 
containerParams.setMargins(0, 0, 0, 16); 

tv3 = new TextView(getSherlockActivity()); 
params3.addRule(RelativeLayout.ABOVE, tv4.getId()); 
params3.addRule(RelativeLayout.ALIGN_LEFT, pb1.getId()); 
tv3.setId(3); 
tv3.setText("textView3"); 

tv4 = new TextView(getSherlockActivity()); 
params4.addRule(RelativeLayout.CENTER_HORIZONTAL); 
params4.addRule(RelativeLayout.ABOVE, pb1.getId()); 
tv4.setId(4); 
tv4.setText("textview4"); 

pb1 = new ProgressBar(getSherlockActivity()); 
params5.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
params5.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
params5.addRule(RelativeLayout.LEFT_OF, ib1.getId()); 
pb1.setProgress(40); 
pb1.setMax(100); 

ib1 = new ImageButton(getSherlockActivity()); 
params6.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
params6.addRule(RelativeLayout.ALIGN_TOP, pb1.getId()); 
//ib1.setImageResource(R.drawable.ic_green_ok); 

layout.addView(tv1, params1); 
layout.addView(tv2, params2); 
layout2.addView(tv3, params3); 
layout2.addView(tv4, params4); 
layout2.addView(pb1, params5); 
layout2.addView(ib1, params6); 
//layout.addView(layout2, containerParams); 
getSherlockActivity().setContentView(layout); 

: 여기

코드입니다

layout.addView(layout2, containerParams); 

답변

1

또한 오히려이 관리 O를 취할 것입니다 모든 추가 매개 변수를 만드는 대신이

final TextView titleView = (TextView) itemLayout 
      .findViewById(R.id.titleView); 

을 수행 할 수 있습니다 레이아웃상의 위치