早教吧 育儿知识 作业答案 考试题库 百科 知识分享

android中如何实现动态插入控件我想在原有的相对布局中,通过点击一个按钮,实现在按钮下方插入一个控件,并且原来按钮下方的布局顺延往下一行.以下是我的代码,麻烦懂的朋友帮忙填一下.我

题目详情
android中如何实现动态插入控件
我想在原有的相对布局中,通过点击一个按钮,实现在按钮下方插入一个控件,并且原来按钮下方的布局顺延往下一行.
以下是我的代码,麻烦懂的朋友帮忙填一下.我java初学.希望尽量用代码的方式来解释,文字再多我可能也看不懂.
package com.demo.android.text;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class Text extends Activity {
private ImageButton plus_button;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
findViews();
setListener();
}
private void setListener() {
// TODO Auto-generated method stub
plus_button.setOnClickListener(plus);
}
private void findViews() {
// TODO Auto-generated method stub
plus_button = (ImageButton)findViewById(R.id.btn_add);
}
private OnClickListener plus = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
};
}
▼优质解答
答案和解析
直接给你上代码吧,写了我半个小时,经过了我的测试了的~
运行下就能看到结果了~关键的remove的时候有给你写注释~
布局的layout文件内容:
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
对应Activity的内容:
----------------------------------------------------------------------------------
package com.foxconn.dialog;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
public class DialogTest extends Activity implements OnClickListener {
private Button add_btn,remove_btn;
private LinearLayout linearLayout;
private int index = 0;
/** Called when the activity is first created.*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
register();
}
private void register() {
add_btn.setOnClickListener(this);
remove_btn.setOnClickListener(this);
}
private void findViews() {
add_btn = (Button) findViewById(R.id.add);
remove_btn = (Button) findViewById(R.id.remove);
linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
}
protected View createView() {
Button btn = new Button(this);
btn.setId(index++);
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
btn.setText("aaaaaa" + index);
return btn;
}
private void removeView() {
//获取linearlayout子view的个数
int count = linearLayout.getChildCount();
//研究整个LAYOUT布局,第0位的是含add和remove两个button的layout
//第count-1个是那个文字被置中的textview
//因此,在remove的时候,只能操作的是00用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button
linearLayout.removeViewAt(count - 2);
}
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
linearLayout.addView(createView(),1);
break;
case R.id.remove:
removeView();
break;
default:
break;
}
}
}
----------------------------------------------------------------------------------
看了 android中如何实现动态...的网友还看了以下:

水是生命之源,请根据所学水的知识填空:(1)自来水厂在净水过程中,利用活性炭的性除去水中的颜色和异  2020-05-13 …

麻烦填一下有奖5分眼()金()不()一()心(填动物)意()(填动物)发童言(近义词)饥()渴(近  2020-06-17 …

子集和真子集的区别.我看了教科书也不怎么明白,麻烦用通俗点的话,书上话拗口麻烦举个例子来说明下啊!  2020-07-03 …

英语翻译体育运动成了人们关注的热点社会话题之一锻炼肌肉,强身健体有时能使人忘记烦恼通过有些运动,可  2020-08-03 …

英语翻译让我最生气最难过的人是你,让我最温暖最幸福的人怎么又是你.(女朋友在国外,我不会说那么直白表  2020-11-02 …

选词填空.友谊选词填空.友谊我们要发展同世界各国之间的()关系.友好小明一家与解放军同志建立了深厚的  2020-11-13 …

酒店优质服务的基本要求,汉译英1.真诚2.讲效率3.随时做好服务的准备4.做好“可见”服务5.树立全  2020-12-10 …

怎么说明这两台主机在同一子网中?将两台主机的分别与他们的进行操作,若结果相同,则说明这两台主机在同一  2020-12-13 …

难以(成语)词语也行!麻烦填3个!而填一下!3Q我说可以填词语,vistaspeed,你也太夸张了吧  2020-12-24 …

英语填空题~用括号内的单词的正确形式填空1.Hebecame(amaze)(energy).他变得出  2021-01-13 …