package com.reseach;
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast;
public class MakeRsch extends Activity {
int qNum = 0;
int getQnum(){
return qNum;
}
void plusQnum(){
this.qNum++;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.make_rsch);
final int maxQnum = 10;
final LinearLayout lr = (LinearLayout)findViewById(R.id.lr_mk);
final LinearLayout lr_btn[] = new LinearLayout[maxQnum];
final LinearLayout lr_ex[] = new LinearLayout[maxQnum];
final EditText etQ[] = new EditText[maxQnum];
final Button btnType[][] = new Button[maxQnum][2];
final EditText etEx[][] = new EditText[maxQnum][4];
final EditText etDscp[] = new EditText[maxQnum];
findViewById(R.id.btn_addQ).setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
int i = getQnum();
if(i <= maxQnum){
lr_btn[i] = new LinearLayout(MakeRsch.this);//inner레이아웃(버튼정렬)
lr_btn[i].setOrientation(LinearLayout.HORIZONTAL);
lr_ex[i] = new LinearLayout(MakeRsch.this);
lr_ex[i].setOrientation(LinearLayout.VERTICAL);
etQ[i] = new EditText(MakeRsch.this);//질문란
btnType[i][0] = new Button(MakeRsch.this);//응답형식 선택버튼1
btnType[i][0].setText("4지선다");
LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
btnParams.weight=1;
btnType[i][0].setLayoutParams(btnParams);
btnType[i][0].setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
int i = getQnum();
etEx[i][0] = new EditText(MakeRsch.this); //4지선다 et
etEx[i][1] = new EditText(MakeRsch.this);
etEx[i][2] = new EditText(MakeRsch.this);
etEx[i][3] = new EditText(MakeRsch.this);
lr_ex[i].addView(etEx[i][0]); ← 에러
lr_ex[i].addView(etEx[i][1]);
lr_ex[i].addView(etEx[i][2]);
lr_ex[i].addView(etEx[i][3]);
lr_ex[i].removeView(etDscp[i]);
}
});
btnType[i][1] = new Button(MakeRsch.this);//응답형식 선택버튼2
btnType[i][1].setText("서술");
LinearLayout.LayoutParams btnParams2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
btnParams2.weight=1;
btnType[i][1].setLayoutParams(btnParams2);
btnType[i][1].setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
int i = getQnum();
etDscp[i] = new EditText(MakeRsch.this); //서술 et
lr_ex[i].addView(etDscp[i]);
lr_ex[i].removeView(etEx[i][0]);
lr_ex[i].removeView(etEx[i][1]);
lr_ex[i].removeView(etEx[i][2]);
lr_ex[i].removeView(etEx[i][3]);
}
});
lr_btn[i].addView(btnType[i][0]);//inner layout에 버튼 add
lr_btn[i].addView(btnType[i][1]);
lr.addView(etQ[i]);//질문란 add
lr.addView(lr_btn[i]);//버튼감싼layout add
lr.addView(lr_ex[i]);
plusQnum();//qnum 증가
}else{
Toast.makeText(MakeRsch.this, "더이상 추가할 수 없습니다", Toast.LENGTH_SHORT).show();
}
}
});
}
}
02-14 14:35:36.000: E/AndroidRuntime(2627): FATAL EXCEPTION: main
02-14 14:35:36.000: E/AndroidRuntime(2627): java.lang.NullPointerException
02-14 14:35:36.000: E/AndroidRuntime(2627): at com.reseach.MakeRsch$1$1.onClick(MakeRsch.java:81)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.view.View.performClick(View.java:2408)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.view.View$PerformClick.run(View.java:8817)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.os.Handler.handleCallback(Handler.java:587)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.os.Looper.loop(Looper.java:144)
02-14 14:35:36.000: E/AndroidRuntime(2627): at android.app.ActivityThread.main(ActivityThread.java:4937)
02-14 14:35:36.000: E/AndroidRuntime(2627): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 14:35:36.000: E/AndroidRuntime(2627): at java.lang.reflect.Method.invoke(Method.java:521)
02-14 14:35:36.000: E/AndroidRuntime(2627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-14 14:35:36.000: E/AndroidRuntime(2627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-14 14:35:36.000: E/AndroidRuntime(2627): at dalvik.system.NativeStart.main(Native Method)




우선은 findViewById()로 찾아지는지 먼저 봐보세요
그리고 추가 되는 layout 를 하나씩 넣지 마시고 rayout 을 미리 만들어 놓고 하나씩 add 시켜도 될 거 같은데요