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

버튼을 2차 배열로 생성하는방법

0 추천
시작버튼을 누르면 ix iy크기를 가진 2차원 버튼 배열을 생성하고싶습니다.
버튼 클릭시 새로운 버튼을 만드는 코드는 질문을 통해 답을 얻어서 거기다가 반복문으로 버튼을 여러개 생성해보려 하였으나 1개만 생성되거나 오류로 중단되네요 어느부분이 문제인가요?




ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

package com.example.minesweeper_light;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    int ix = 8;
    int iy = 8;
    int mine = 8;
    Context context;
    AbsoluteLayout manager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;
        manager = (AbsoluteLayout) findViewById(R.id.AbsLay);


        Button button = (Button)findViewById(R.id.btnStart);
        button.setText("시작하기");

    }

    public void btnStart_Click(View view) {
        int i=0; int j=0; //반복문 변수
        int x=10; int y=60; //버튼 시작위치
        int num=1; //버튼 아이디 변수
        if(i < ix)
        {
            if(j < iy)
            {
                Button btn[][] = new Button[ix][iy];
                btn[i][j].setId(num);
                btn[i][j].setWidth(40);
                btn[i][j].setHeight(40);

                btn[i][j].setX(x);
                btn[i][j].setY(y);
                btn[i][j].setText("0");
                manager.addView(btn[i][j]);

                x=x+35;
                y=y+35;
                num=num+1;
                j=j+1;
            }
            i=i+1;
        }


    }

}

위와같이도 해보고 버튼 생성 코드를 배열이 아닌

Button btn = new Button(context);
                btn.setId(num);
                btn.setWidth(40);
                btn.setHeight(40);

                btn.setX(x);
                btn.setY(y);
                btn.setText("0");
                manager.addView(btn);

                x=x+35;
                y=y+35;
                num=num+1;
                j=j+1;




이렇게도 시도해봤지만 오류로 중단되거나 버튼이 1개만 생성됩니다 ㅠ

그리고 cell이라는 클래스에 버튼 클래스를 상속한뒤  vist이라는 변수를 선언하여
Vist변수를 가진 버튼을 생성할수도있나요?
Cro0515 (240 포인트) 님이 2019년 6월 4일 질문
if문만 있지 while 혹은 for문 같은 반복문이 없으니 한번만 수행되고 종료 될 듯 한데요..
착각하신듯 합니다.. ^^
앗.. 맞아여.. 질문 올렸을때 새벽에 졸면서 짜다보니 if랑 for랑 착각하고 짰습니다 ㅜㅜ 일어나서 다시보니 if더군요... 답변 감사합니다ㅎㅎㅎ

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...