2016. 7. 8. 11:41ㆍMobile/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>
끝~
'Mobile > Android' 카테고리의 다른 글
[Android & iOS] icon size (1) | 2016.07.27 |
---|---|
[안드로이드]Android CardView Example (0) | 2016.07.19 |
android videoview + 안드로이드 동영상 재생 (2) | 2016.07.05 |
[안드로이드 스튜디오 강좌] android live templates (0) | 2016.07.01 |
Android Sensor list 종류 (1) | 2016.06.27 |