如何通过java在Android中添加视图并提供单独的ID
我正在开发一个应用程序,在这个应用程序中,用户可以重复制作一段正在运行的音乐(Taal)的某些编辑版本。我的问题是,当用户创建一个新的“Taal”时,我希望能够使用文本视图和按钮创建一个新的RelativeLayout。为此,我需要通过代码的Java端而不是xml创建一个新的RelativeLayout和Buttons,但我不知道在创建每个按钮时如何才能为其分配单独的id,因为Java需要一个格式为R.id的id* 示例XML代码:如何通过java在Android中添加视图并提供单独的ID,java,android,xml,android-layout,button,Java,Android,Xml,Android Layout,Button,我正在开发一个应用程序,在这个应用程序中,用户可以重复制作一段正在运行的音乐(Taal)的某些编辑版本。我的问题是,当用户创建一个新的“Taal”时,我希望能够使用文本视图和按钮创建一个新的RelativeLayout。为此,我需要通过代码的Java端而不是xml创建一个新的RelativeLayout和Buttons,但我不知道在创建每个按钮时如何才能为其分配单独的id,因为Java需要一个格式为R.id的id* 示例XML代码: <RelativeLayout a
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="TaalName"
android:textSize="28dp" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_gravity="right"
android:layout_toLeftOf="@+id/imageButton2"
android:background="#00000000"
android:paddingRight="15dp"
android:src="@android:drawable/ic_menu_edit" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="right"
android:background="#00000000"
android:paddingRight="15dp"
android:src="@android:drawable/ic_menu_delete" />
</RelativeLayout>
我如何根据需要创建这些按钮和相关布局,以及用户决定创建多少“TAAL”
注意:我仍在学习一些XML,但我不知道如何创建自定义视图,因此如果有必要,请提供一些帮助。每当您反复考虑创建同一组视图的多个实例时,将它们添加到您的家长中,您应该想知道AdapterView(即ListView)是否是一个更好的选择。答案几乎总是肯定=)那么你是说我应该用listview或父级(在我的例子中是垂直线性布局)替换相对布局?另外,这允许我给每个项目单独的ID吗?可能吧。如果使用ListView作为父布局,则不必“手动”创建每个视图,适配器将根据数据对象为您执行此操作。您可以在创建视图时设置onclicklisteners,这样就不需要知道它的id。
deleteTaal = (ImageButton) findViewById(R.id.imageButton2);
RL = (RelativeLayout) findViewById(R.id.RelativeLayout1);
newTaal = (ImageButton) findViewById(R.id.imageButton1);