저는 비교적 안드로이드에 익숙하지 않으며 내 사용자 정의보기에서 프로그래밍 방식으로 정의 된 상대 레이아웃 (단편에 정의 됨)에 액세스하는 방법에 완전히 매달 렸습니다. 조각에서 사용자 정의보기에서 RelativeLayout에 액세스 할 때 NullPointerException이 발생했습니다.
이 내가 가진 무엇 :...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container,false);
RelativeLayout rl1 = new RelativeLayout(view.getContext());
TextView tView1 = new TextView(view.getContext());
tView1.setText("test");
rl1.addView(tView1);
rl1.setId(1);
tView1.setId(2);
...
}
그런 다음 사용자 지정보기에 내가 ID로 상대 레이아웃 및 텍스트 뷰를 호출합니다. 아무것도하려고하면 NullPointer 예외가 발생합니다.
...
RelativeLayout rl1 = (RelativeLayout) findViewById(1);
TextView tView1 = (TextView) findViewById(2);
tView1.getText();
코드는 위의 텍스트 뷰에 .getText()
에 노력을 보여줍니다,하지만 난 RelativeLayout의에 할 아무것도 또한 NullPointer 예외가 발생합니다.
그래서 기본적으로 RelativeLayout 및 TextViews가 올바르게 표시되지 않는 것 같습니다. FYI, 이미 this similar question을 보았습니다. 그러나 여기서는 적용되지 않았습니다. 내 생성자는 이미 적절하게 설정되어 있습니다. ,
좋아, 더 많은 코드를 추가했습니다. 추가 할 특정 명령/파일 유형을 알려주시겠습니까? 'view.addView (rl1)'과 같은가요? 아니면 이것을 Fragment1의 .xml 파일에 추가합니까? – lynvie
내 대답보기. 이 동적 인 것을 유지하고 싶다면 xml은 프래그먼트 레이아웃의 초기 팽창 외에 실제로 관련되지 않는다. 필자가 작성한 것처럼,'addView()'는'View' 클래스에 대해 정의되지 않았기 때문에 레이아웃으로 변환해야합니다. –