android动态按钮代码,Android动态生成Button的小DEMO

ed679b5e5b5136bd09648844a6301d9d.png

其实以前没有写文章的习惯,碰到些重要的point或者纠错之类的都是直接在程序旁边注释下来(自我陶醉,以为自己会回过头来复习?),后天时间久了慢慢发现自己在重复犯一些错误,这就让人受不了了,所以感觉找一个没有人的小角落把自己认为重要的容易犯的错误整理纪录下来还是有必要的。

为什么不是CSDN?

的style是真的舒服。

好了,接下里切入主题,今天介绍的主要是一个动态生成、删除button的小DEMO,并且结合ScrollView保证在button的数目过多导致超出屏幕的时候能够上下拉浏览下面的button。

588fd0544bdf0c2671d67413fe809493.png

初始化界面

这里是个初始化界面,放置了三个功能键,分别是“增加按钮”、“减少按钮”、“重命名”,点击重命名按钮会直接跳转到命名界面。

75f837bc93ec10fdb3230e245c927a4d.png

命名界面

界面里就简单地放了一个EditText和SubmitButton,另外这里的EditText简单地调用了PowerfulEditText这个开源库,实现整体删除,具体使用方法这里就不作过多介绍。在点击了Submit之后会跳转回初始化界面,并通过Intent将输入的内容传回。

命名界面代码片段

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setTitle("输入新的名称");

setContentView(R.layout.name_edit);

submit=(Button) findViewById(R.id.submit);

okc=(EditText) findViewById(R.id.name);

submit.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent1=new Intent();

String name=okc.getText().toString();

intent1.putExtra("okc",name);

setResult(RESULT_OK,intent1);

finish();

}

});

}

添加按键点击事件

addB.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

layout.addView(createButton());

}

});

这里的createButton()的返回值直接是一个动态创建好的Button,在点击添加按钮之后通过addView()函数动态添加到界面中。

对了,这里的okc是全局变量,由submit传递过来。

protected View createButton(){

final Button btn=new Button(this);

btn.setId(index++);

Log.d("da","id is" + btn.getId());

btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

btn.setText(okc);

return btn;

}

移除按键点击事件

整个Layout布局中,“ADD BUTTON”是第0位,所以在remove的时候,只能移除30)用来判断是否添加的按钮。

removeB.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

int count=layout.getChildCount();

if (count-3>0) {

layout.removeViewAt(count-1);

}

}

});

最后附上运行效果图

bd7579a471fdba0d7f671055d6fd6b36.png

效果图

Github

Github项目里的UI已经进行了优化,并且加了些新功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值