早教吧作业答案频道 -->其他-->
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
}
};
}
我想在原有的相对布局中,通过点击一个按钮,实现在按钮下方插入一个控件,并且原来按钮下方的布局顺延往下一行.
以下是我的代码,麻烦懂的朋友帮忙填一下.我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;
}
}
}
----------------------------------------------------------------------------------
运行下就能看到结果了~关键的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中如何实现动态...的网友还看了以下:
请教"奉化的水蜜桃独一无二"用英语怎么说,谢谢大侠回答啊:再帮忙翻译下:"相信我,没错的" 2020-04-27 …
英语翻译很抱歉,我没有注册公司,我所从事的商业活动都是个人的,没有你要的相关文件,但关于我个人的相 2020-05-13 …
阅读下面文字,按要求作文。台湾作家龙应台说:以前相信的很多东西,后来一件一件变成不相信;以前相信的 2020-05-16 …
阅读下面文字,按要求作文.(嘉兴卷60分)台湾作家龙应台说:以前相信的很多东西,后来一件一件变成不 2020-05-16 …
怎么回这个email.刚到一家合资公司中国部工作,澳大利亚的同行发来如下邮件,我该咋回复,请帮忙起 2020-05-17 …
”请看以下邮件,我们按照你们的要求换了新银行.“英文怎么说? 2020-06-10 …
选择题看一幅漫画,讲变废为宝,问这体现了:A.矛盾主次方面在一定条件下相互转化B.主次矛盾在一定条 2020-07-10 …
android中如何实现动态插入控件我想在原有的相对布局中,通过点击一个按钮,实现在按钮下方插入一 2020-07-17 …
独立事件与相依事件投两个色子,事件A是“和为7”,事件B是“至少一个为6”,两者是独立事件吗?我不能 2020-11-25 …
应对不测风云,我们应“居安思危”,“居安”之所以要“思危”,是因为矛盾双方()①相互贯通、相互渗透② 2020-12-05 …