안드로이드 버튼 동적 + android dynamic button click event

2016. 7. 8. 11:41Mobile/Android



반응형

안드로이드 버튼 동적  + android dynamic button click event


LayoutParams params 을이요 하면 얼마든지 동적으로 버튼을 만들 수 있음


RelativeLayout 를 이용해서 


ex) addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);


또한 다양하게 만들 수 있습니다.


잘 만들어진 라이브러리를 사용하면 빠르겠지만

https://github.com/blazsolar/FlowLayout


이론을 알면 응용하기가 쉽습니다.




이미지 참고






아래 소스 참고 하시기 바랍니다.



MainActivity.java


package com.example.dynamicbtn;


import android.app.ActionBar.LayoutParams;

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.LinearLayout;

import android.widget.TextView;

import android.widget.Toast;


public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        final LinearLayout lm = (LinearLayout) findViewById(R.id.ll);


        // linearLayout params 정의

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(

                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);


        for (int j = 0; j <= 5; j++) {

            // LinearLayout 생성

            LinearLayout ll = new LinearLayout(this);

            ll.setOrientation(LinearLayout.HORIZONTAL);


            // TextView 생성

            TextView tvProdc = new TextView(this);

            tvProdc.setText("Name" + j + " ");

            ll.addView(tvProdc);


            // TextView 생성

            TextView tvAge = new TextView(this);

            tvAge.setText("   Age" + j + "  ");

            ll.addView(tvAge);


            // 버튼 생성

            final Button btn = new Button(this);

            // setId 버튼에 대한 키값

            btn.setId(j + 1);

            btn.setText("Apply");

            btn.setLayoutParams(params);


            final int position = j;


            btn.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {

                    Log.d("log", "position :" + position);

                    Toast.makeText(getApplicationContext(), "클릭한 position:" + position, Toast.LENGTH_LONG).show();

                }

            });


            //버튼 add

            ll.addView(btn);

            //LinearLayout 정의된거 add

            lm.addView(ll);

        }

    }

}







activity_main.xml


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    >


    <LinearLayout

        android:id="@+id/ll"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical">


    </LinearLayout>


</LinearLayout>









끝~


반응형