XML에서 정적으로 정의 된 조각에서 TextView 요소를 사용할 수있었습니다. 그러나 동적으로/프로그래밍 방식으로 생성하려고 할 때 아무 것도 표시되지 않습니다. 나는 가지고있는 문제에 대한 간단한 예를 만들었다.조각에 동적으로 TextView 객체 추가
이 하나의 작동, 나는 화면이 업데이 트를 참조하십시오.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.hello_world, container, false);
TextView tv = (TextView)v.findViewById(R.id.text);
tv.setText("Fragment #" + mNum);
tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
return v;
}
이 것은 작동하지 않습니다. diagtextvertical.xml 파일은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
코드는 다음과 같습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
//good View v = inflater.inflate(R.layout.diaglist, container, false);
View v = inflater.inflate(R.layout.diagverticaltext, container, false);
mycontainer = container;
LinearLayout l = (LinearLayout)inflater.inflate(R.layout.diagverticaltext, container, false);
TextView tv = new TextView(container.getContext());
tv.setText("Testing...");
l.addView(tv);
tv = new TextView(container.getContext());
tv.setText("Testing1...");
l.addView(tv);
tv = new TextView(container.getContext());
tv.setText("Testing2...");
l.addView(tv);
return v;
}
container.getContext() 대신 getActivity()를 사용해 보았지만 행운이 없습니다. 레이아웃을 실제 뷰 인스턴스에 매핑하는 방법에 대해 명확하지 않은 무언가가 있습니다. 이는 Activity에서이 작업을 수행하는 것과는 다른 것입니다.
내 질문에 두 번째 부분이 있습니다. 내 실제 목표는 폴링 된 데이터를 기반으로보기를 비동기식으로 업데이트하는 것입니다. 따라서 내 자신의 콜백을 호출 할 때 ViewGroup 및 인플레이터에서 내 손을 잡는 방법이 있습니다.