마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

테이블 동적 생성 어떻게하나요?

0 추천
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // fragment에서 findViewById는 그냥 쓰면 안 먹힌다. 아래 과정을 해줘야 사용 가능하다.
        View v = inflater.inflate(R.layout.fragment_food_calorie, container, false);
        TableLayout table = (TableLayout)v.findViewById(R.id.TableLayout);
        TableLayout.LayoutParams tableLayoutParams = new TableLayout.LayoutParams();

        TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams();
        tableRowParams.setMargins(1,1,1,1);
        tableRowParams.weight = 1;

        // 데이터베이스 등록된 레코드 개수를 가져온다. 나중에 결과값을 받도록 수정할 것
        int count = 10;
        // 테이블의 라인을 동적으로 생성하는 for문
        for(int i=0; i<count; ++i){
            TableRow row = new TableRow(getActivity()); // getActivity()는 현재 실행중인 액티비티를 가져오는거다. fragment에서 this로 하면 안 된다.

            // 테이블 행 설정
            row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));

            // 음식 이미지나오는 이미지뷰

            // 음식 칼로리 나타는 텍스트뷰
            TextView tv = new TextView(getActivity());
            tv.setText(i);

            row.addView(tv, tableRowParams);
            table.addView(row, tableLayoutParams);
        }
        return v;
        //return inflater.inflate(R.layout.fragment_food_calorie, container, false);
    }

 

fragment에서 동적으로 테이블을 생성하려고하는데 row.addView(tv, tableRowParams); 이 부분에서 디버깅이 멈추는데 어떤 이유인지 잘 모르겠네요...

 

다른 소스코드를 참고하는데 구버전이랑은 호환이 잘 안되는거같아요..
앙드 (160 포인트) 님이 2017년 6월 8일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...