您的位置:首页 > 编程语言 > Java开发

利用Java代码给gridLayout动态添加button按钮

2016-07-17 19:23 453 查看
定义一个二维数组用于存储要在button上要显示的文本

gridLayout上显示的时3行4列的形式

点击button可以跳转到相应的页面(并实现数据的回传)

具体代码如下:

public class CityActivity extends Activity {

private GridLayout gridLayout;

String[][] count = { { "北京", "上海", "天津", "哈尔滨" }, { "沈阳", "深圳", "广州", "重庆" }, { "广州", "香港", "厦门", "南京" } };

gridLayout = (GridLayout) findViewById(R.id.hot_city_gridlayout);

private void setHotCityGridLayout() {

GridLayout.LayoutParams params = null;

for (int i = 0; i < 3; i++) {

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

final Button btn = new Button(this);

btn.setTag(count[i][j]);

btn.setWidth(40);

btn.setBackgroundResource(R.drawable.btn_shape_login01);

btn.setText(count[i][j]);

// 设置的是内边距

// btn.setPadding(20, 5, 5, 5);

// 设置点击按钮实现数据的回传

btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(CityActivity.this, QueryActivity.class);

intent.putExtra("cityname", btn.getTag().toString());

setResult(100, intent);

Log.i("TAG", "btnID:" + btn.getTag().toString());

finish();

}

});

GridLayout.Spec rowSpec = GridLayout.spec(i); // 设置它的行和列

GridLayout.Spec columnSpec = GridLayout.spec(j);

params = new GridLayout.LayoutParams(rowSpec, columnSpec);

// 设置btn的宽和高

params.width = 100;

params.height = 60;

// 设置各个控件之间的间距

params.setMargins(5, 0, 5, 5);

// 设置位置(靠左)

params.setGravity(Gravity.LEFT);

gridLayout.addView(btn, params);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: