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

View 동적 추가 for loop 사용 질문드립니다 !

0 추천

DB에서 데이터를 가져와서 그 수만큼 뷰를 추가하기 이전에(DB를 아직 공부못한상태라 ..^^:)

숫자를 입력받아서 그 수만큼 EditText 나 Button 을 동적으로 추가해보려고 합니다.

밑의 소스코드에서는 EditText를 동적추가 해보고있습니다 !

일단 1개는 추가가 되는데 여러개를 하는데 for 문 사용을 해보았는데 앱이 죽더라구요. .ㅠㅠ

package com.example.lg.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

/**
 * Created by LG on 2015-01-20.
 */
public class MenuActiviy extends Activity {

    String nums;
    EditText test1;
    EditText test2;
    EditText test3;
    Button bts;
    LinearLayout rel;

    Button bts2;
    int art = 1;

    @Override
    public void onCreate(Bundle savedInstanceSate) {
        super.onCreate(savedInstanceSate);
        setContentView(R.layout.activity_menu);
        test1 = (EditText) findViewById(R.id.num);
        bts = (Button) findViewById(R.id.button_btn);

        test2 = (EditText)findViewById(R.id.num2);



    }


    public void onClick(View view) {
        int j;
        Integer i = Integer.parseInt(""+test1.getText());
        for(j=0;j<=i;j++)
        {
            rel=(LinearLayout)findViewById(R.id.rela);
            test3 = new EditText(this);
            rel.setId(j);
            test3.setId(j);
            test3.setText("DATA : " + i);
            test3.setGravity(Gravity.CENTER);
            test3.setBackgroundColor(0xff00ff00);
            rel.addView(test3);

        }



    }
}

xml 에는 LinearLayout 만 설정하고 그 안에 EditText 하나 넣어서 뭐.. "Number you entered" 정도로 hint로 해놨습니다.

레이아웃만 적어놓으니 계속 warnning 비슷하게 거슬리더라구요;;

 

우선 다른 분들이 하신거 보고 혼자 연구해보니 id 가 있어야 구분이 될것같아 

추가할 레이아웃과 Edittext 에 id를 for 문 변수로 해봤습니다.

 

이렇게 하면 짜잔 하면서 예를 들어 3을 입력하면 DATA 1 ~ 3 이 수직으로 주르륵 나올것같았지만.

 

앱은 죽었습니다.

 

조언좀 부탁드립니다 ㅠㅠ

BooGalee (250 포인트) 님이 2015년 1월 28일 질문

2개의 답변

0 추천
오류로그가 있으면 원인을 더 정확하게 알 수 있겠지만, 일단은 rel 은 onCreate 에서 가져오세요.
쎄미 (162,410 포인트) 님이 2015년 2월 3일 답변
0 추천
rel.setid(j); 를 지우세요
안티푸라면 (6,700 포인트) 님이 2015년 2월 4일 답변
...