现在我想在 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 回答