질문이요~~~~~~~~~~ㅠㅠㅠ
계속 질문하고 있네요
아까부터 xml 없이 자바소스로만 코딩하고 있는데요
여기분들 도움받아서 마니 해결했는데도 또 문제가 생겼네요 ㅠㅠ
String[] dataString1 = new String[] "1부문","a","ㅇ", "17.4", "18.3", "-0.9",
"1부문","s","ㅎ", "19.9", "19.7", "0.2",
"1부문","d","ㄹ", "16.5", "17.8", "-1.3",
"1부문","f","ㄴ", "12.0", "14.5", "-2.5",
"1부문","g","ㄱ", "19.9", "19.7", "0.2",
"1부문","w","ㄷ", "16.5", "17.8", "-1.3",
"1부문","r","ㅋ", "12.0", "14.5", "-2.5",
"1부문","e","ㅈ", "19.9", "19.7", "0.2",
"1부문","w","ㄴ", "16.5", "17.8", "-1.3"};
TextView[] textdata = new TextView[dataString1.length];
LinearLayout layoutheader1 = new LinearLayout(this);
LinearLayout layoutheader2 = new LinearLayout(this);
for(int i=0;i<dataString1.length;i++) {
if((i+1)%6 == 1) { //아님 첫번째 값이 1부문일 때??
layoutheader1.setOrientation(LinearLayout.VERTICAL);
textdata[i] = new TextView(this);
textdata[i].setText(dataString1[i]);
//textdata[i].setText("sssss");
//layoutheader1.addView(textdata[i]);
} else {
layoutheader2.setOrientation(LinearLayout.HORIZONTAL);
textdata[i] = new TextView(this);
textdata[i].setText(dataString1[i]);
//layoutheader2.addView(textdata[i]);
}
if((i+1)%6 == 1) {
layoutheader1.addView(textdata[i]);
} else {
layoutheader2.addView(textdata[i]);
}
//Toast.makeText(this, "zzz" + (dataString1.length+1)%6, Toast.LENGTH_LONG).show();
}
mainlayoutheader.addView(layoutheader1);
mainlayoutheader.addView(layoutheader2);
제가 작성한 코드구요
String 배열에 있는 값 그대로 하나하나 텍스트뷰로 받아와서 출력하고 싶은데요
출력된 뷰가 배열에 있는 그대로.... (쉼표,따옴표는 없이 봐주세요)
"1부문","a","ㅇ", "17.4", "18.3", "-0.9",
"1부문","s","ㅎ", "19.9", "19.7", "0.2",
"1부문","d","ㄹ", "16.5", "17.8", "-1.3",
"1부문","f","ㄴ", "12.0", "14.5", "-2.5",
"1부문","g","ㄱ", "19.9", "19.7", "0.2",
"1부문","w","ㄷ", "16.5", "17.8", "-1.3",
"1부문","r","ㅋ", "12.0", "14.5", "-2.5",
"1부문","e","ㅈ", "19.9", "19.7", "0.2",
"1부문","w","ㄴ", "16.5", "17.8", "-1.3
이렇게 출력되면 좋겠는데
제가 쓴대로 하면
1부문
1부문
1부문
1부문
1부문
1부문
1부문
1부문","a","ㅇ", "17.4", "18.3", "-0.9",
이런식으로 출력이 되네요....
ㅜㅜㅜㅜ for문 돌리면서 if문에서 설정만 제대로 해주면
HORIZONTAL, VERTICAL 이 부분을 수정할 수 있을 것 같은데
어떻게 해야할까요??? ㅜㅜ
LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
LinearLayout ll = null;
for (int i=0; i < dataString1.length; i++){
if (i%6 == 0){
ll = new LinearLayout(getApplicationContext());
ll.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
ll.setOrientation(LinearLayout.HORIZONTAL);
Log.i("TAG", "create ll");
TextView tv = new TextView(getApplicationContext());
tv.setText(dataString1[i]);
ll.addView(tv);
Log.i("TAG", "add tv");
}else if (i%6 == 5){
TextView tv = new TextView(getApplicationContext());
tv.setText(dataString1[i]);
ll.addView(tv);
Log.i("TAG", "add tv");
layout.addView(ll);
ll = null;
Log.i("TAG", "add ll");
}else{
TextView tv = new TextView(getApplicationContext());
tv.setText(dataString1[i]);
ll.addView(tv);
Log.i("TAG", "add tv");
}
}
위와 같이 해보세요.
맨위에 있는 layout은 레이아웃 xml에 만들어 두고 findviewby로 가져오시면 됩니다.




어제 올렸는데 답변이 없고 뒤로 밀려낫길래 다시 올려요 ㅠㅠ
아무리 생각해도 잘 모르겠는데 답변 좀 부탁드려요...
그리고 생각해봤는데 1부문 수만큼
LinearLayout 을 HORIZONTAL로 정의해야 할 것 같은데..
배열로 정의가 가능한가요?? 하드코딩으로 정의하기는 싫어서
배열로 정의한 후 for문 돌려보려고 했는데 잘 안되서요
LinearLayout[] layoutdata1 = new LinearLayout[]{};
layoutdata1[i].setOrientation(LinearLayout.HORIZONTAL);
textdata[i].setText(dataString1[i]);
layoutdata1[i].addView(textdata[i]);
이런식으로 해봤는데 잘 안되서...
아~~ 도움 좀 부탁드려요 ㅠㅠ