안드로이드 스튜디오 Linear Layout과 For문 질문 (코드첨부)

조회수 597회

안드로이드를 이용한 커스텀 달력을 만들고있는데, 리니어 레이아웃을 배열을 사용해서 만들었습니다. 아래와 같은 화면까지 만들었는데 문제없이 Run Tasks 되는데 어플리케이션은 무엇이 충돌하는지 실행되지 않습니다 무엇이 문제인가요 ?

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    ScrollView scrollView;
    LinearLayout total1,month1;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater mInflater = getMenuInflater();
        mInflater.inflate(R.menu.menu1, menu);
        return true;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout wk[] = new LinearLayout[54];

        total1 = (LinearLayout) findViewById(R.id.total);
        month1 = (LinearLayout) findViewById(R.id.month);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        params.weight = 1;


        for (int i=0; i<54; i++){
            wk[i] = new LinearLayout(this);
            wk[i].setOrientation(LinearLayout.HORIZONTAL);
            month1.addView(wk[i]);
        }
        total1.addView(month1);

        final Button btn[] = new Button[368];
        for (int i = 0; i < 368; i++) {
            btn[i] = new Button(this);
            btn[i].setWidth(20);
            btn[i].setTextSize(11);
            btn[i].setBackgroundColor(Color.WHITE);
            btn[i].setId(i);
        }


        for(int i = 0 ; i < 7; i++) {
            for (int j = 1; j < 54; j++) {
                wk[j].addView(btn[i + ((j-1) * 7)],params);
            }
        }


        for(int i=0; i<3; i++) {
            btn[i].setText("" + (i + 29));
        }
            for(int i=3; i<34; i++){
                btn[i].setText(""+(i-2));
            }

            for(int i=34; i<63; i++){
                btn[i].setText(""+(i-33));
            }

            for(int i=63; i<94; i++){
                btn[i].setText(""+(i-62));
            }

            for(int i=94; i<124; i++){
                btn[i].setText(""+(i-93));
            }

            for(int i=124; i<155; i++){
                btn[i].setText(""+(i-123));
            }
    }

============ JAVA 코드입니다. ============

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:animateLayoutChanges="true"
        android:background="#000"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="10dp"
            android:text="2020년 Scroll 달력"
            android:textSize="20dp"
            android:textColor="#FFF"/>

        <Button
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="오늘"/>
        <Button
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="보기 방식"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#000"
        android:orientation="horizontal">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:textSize="20dp"
            android:text="1월"
            android:textColor="#fff">
        </TextView>

    </LinearLayout>

    <!--요일-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:gravity="top"
        android:background="#eaeae9"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="일"
            android:textSize="9sp"
            android:textColor="#FF0000" />


        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="월"
            android:textColor="#000000"
            android:textSize="9sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="화"
            android:textColor="#000000"
            android:textSize="9sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="수"
            android:textColor="#000000"
            android:textSize="9sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="목"
            android:textColor="#000000"
            android:textSize="9sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="금"
            android:textColor="#000000"
            android:textSize="9sp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"

            android:text="토"
            android:textSize="9sp"
            android:textColor="#0067a3"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/total"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/month"
            android:orientation="horizontal">

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

==================XML코드 입니다==============

  • 에러로그를 올려주세요. 주동혁 2020.6.18 16:25
  • 2020-06-18 17:33:39.602 1760-2210/? E/GnssHAL_GnssInterface: gnssSvStatusCb: b: input svInfo.flags is 8 2020-06-18 17:33:40.602 1760-2210/? E/GnssHAL_GnssInterface: gnssSvStatusCb: a: input svInfo.flags is 8 2020-06-18 17:33:40.602 1760-2210/? E/GnssHAL_GnssInterface: gnssSvStatusCb: b: input svInfo.flags is 8 2020-06-18 17:33:41.603 1760-2210/? E/GnssHAL_GnssInterface: gnssSvStatusCb: a: input svInfo.flags is 8 2020-06-18 17:33:41.604 1760-2210/? E/GnssHAL_GnssInterface: gnssSvStatusCb: b: input svInfo.flags is 8 에러로그는 이런식으로 무한 반복됩니다 알 수 없는 사용자 2020.6.18 17:33
  • 제가 고민하는 내용은 LinearLayout을 반복문을 통해 54개의 레이아웃을 만든뒤 ScrollView를 이용해서 Scroll 달력을 만들고 싶습니다. 그래서 하나의 큰 MonthLayout을 설정한후 그 세부 레이아웃으로 54개의 자식 LinearLayout을 설정하여 버튼이 7개가 저장될시 다음 레이아웃으로 넘어가는 레이아웃을 만들고싶은데 자꾸 에러가 납니다.. 알 수 없는 사용자 2020.6.18 17:36

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)