안드로이드에서 두 번째 레이아웃의 LayoutInflater 불러오기

2333 단어
이 문제는 Activity (setContentView로 activity main.XML을 불러왔습니다) 함수에서 다른 레이아웃 (layout ll.XML) 을 호출했기 때문입니다.
아래와 같이 간략하게
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          .............
            @Override
            public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

              LinearLayout ll=(LinearLayout)findViewById(R.id.line);
                TextView textView=(TextView)ll.findViewById(R.id.text);
                textView.setText(getGroup(groupPosition).toString());
                return ll;
            }

위에서 직접 호출을 시도했는데 결과가 틀렸습니다.
그래서 csdn에서 질문을 했습니다. 링크는 다음과 같습니다.
http://bbs.csdn.net/topics/391910875
그러나 결과가 없어서 인터넷에서findViewById에 관한 자료를 받아서 다음 부분을 발견하였다
실제 개발에서 LayoutInflater라는 종류는findViewById()와 유사한 역할을 한다.다른 점은 LayoutInflater는res/layout/아래의 xml 레이아웃 파일을 찾고 실례화하는 데 사용된다는 것이다.findViewById () 는 xml 레이아웃 파일 아래에 있는widget 컨트롤 (예를 들어 Button, TextView 등) 을 찾는 것입니다.
구체적인 역할:
1. 불러오지 않거나 동적으로 불러오려면 LayoutInflater를 사용해야 한다.inflate()를 로드합니다.
2、이미 불러온 인터페이스에서Activiyt를 사용할 수 있습니다.findViewById() 방법을 사용하여 인터페이스 요소를 가져옵니다.
【 떼다 】http://www.cnblogs.com/top5/archive/2012/05/04/2482328.html
위의 링크에 상세한 설명이 있다
그래서layoutInflater의 지식을 연구하기 시작했습니다. 다음 두 링크에서 잘 설명했습니다.
http://blog.csdn.net/lmj623565791/article/details/38171465
http://blog.csdn.net/xyz_fly/article/details/37932989
보고 나서 코드를 수정하였는데, 아래와 같이 정상적으로 운행되었다
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        .................       
            @Override
            public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

                View ll=(LinearLayout)getLayoutInflater().inflate(R.layout.layout_ll,null);
                TextView textView=(TextView)ll.findViewById(R.id.text);
                textView.setText(getGroup(groupPosition).toString());
                return ll;
            }

좋은 웹페이지 즐겨찾기