편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.06.18

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


    안드로이드를 이용한 커스텀 달력을 만들고있는데, 리니어 레이아웃을 배열을 사용해서 만들었습니다. 아래와 같은 화면까지 만들었는데 문제없이 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.06.18

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


    안드로이드를 이용한 커스텀 달력을 만들고있는데, 리니어 레이아웃을 배열을 사용해서 만들었습니다. 아래와 같은 화면까지 만들었는데 문제없이 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
        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>
    

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