现在我想在 FingerPaint api 演示中动态添加按钮。但问题是我不熟悉在 java 文件中动态创建布局。有人知道我如何实现这个类来在标题栏中添加按钮吗?任何代码示例将不胜感激。
2426 次
1 回答
2
解释:
1) 获取对插入动态 gui 组件的布局容器的引用。如果容器是动态创建的,则您已经拥有对它的引用。如果它来自 xml 布局,您可以使用findViewById.
2) 创建一个动态组件。您需要将上下文传递给构造函数:使用this.
3) 设置创建的组件属性。
4) 用于container.addView(component)将组件动态添加到容器中。
逐步演示:
1) 使用项目助手创建一个带有默认选项、包test.test和Main活动的新 Android 项目。
2) 编辑res/layout/main.xml文件如下。
<?xml 版本="1.0" 编码="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
机器人:方向=“垂直”
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<线性布局
机器人:方向=“垂直”
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layoutId"
>
</线性布局>
</线性布局>
3) 编辑src/test.test/Main.java文件如下。
包test.test;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.View;
导入 android.view.View.OnClickListener;
导入android.widget.Button;
导入 android.widget.LinearLayout;
导入 android.widget.Toast;
公共类主要扩展活动{
/** 在第一次创建活动时调用。*/
@覆盖
公共无效 onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
设置内容视图(R.layout.main);
addDynamicButton();
}
/**
* 添加动态按钮。
*/
私人无效添加动态按钮(){
// 动态创建按钮
按钮 btn = 新按钮(此);
// 设置按钮属性
btn.setText("我是动态的。请点击我。");
btn.setOnClickListener(new OnClickListener() {
@覆盖
公共无效 onClick(查看 v){
Toast toast = Toast.makeText(Main.this, "Yo!", Toast.LENGTH_LONG);
toast.show();
}
});
// 检索对容器布局的引用
LinearLayout 容器 = (LinearLayout)findViewById(R.id.layoutId);
// 将动态按钮添加到 GUI
容器.addView(btn);
}
}
4) 编译并作为 Android 应用程序运行。现在您知道它是如何工作的,您可以使用这种技术将任何类型的组件添加到任何布局容器中。
于 2011-05-10T08:38:49.487 回答