早教吧作业答案频道 -->其他-->
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中如何实现动态...的网友还看了以下:
一个修路队4小时修九分之二千米,平均每小时修路多少千米?照这样的速度,这个修路队一天(按八小时算) 2020-05-14 …
数学:下列四个命题中是真命题的有()①同位角相等②相等的角是对顶角③直角三角形的两个锐角互余④三个 2020-05-16 …
已知关于X的一元二次方程x^2+2(k-1)x+k^2-1=0有两个不相等的实数根已知关于x的一元 2020-05-16 …
用经纬仪已经知道两基准点怎么个旋转90°在找两点连接直线与之前的两基准点连成的直线相互垂直就像一个 2020-05-21 …
一个局域网要能实现分布式进程通信,为用户提供完备的网络服务功能,就必须具备局域网【 】。 2020-05-24 …
1到3000之间去掉4和7的所有数的个数?每一位数不能带4或7例:4,7,17,78,700,41 2020-06-12 …
某公安局接到一商店的报警后不及时出警,导致盗贼携赃款逃脱,该店将县公安局告到了法院,法院依法判决县 2020-06-30 …
商店以每个0.4元的批发价购进一批乒乓球,按0.5元的零售价卖出,当卖到还剩下30个时,已获利12 2020-07-09 …
用一个字形容历史朝代简介1.十个历史朝代,分别为夏、商、秦、汉、周、唐、宋、元、明、清.2.分别用 2020-08-03 …
英语翻译爱一个人不孤单,想一个人才孤单静静的思念,孤独的享受放开天上的云朵,抛开遗留的誓言喜欢一个人 2020-11-02 …