您好我已经像下面的屏幕一样开发了UI。现在我想在最后加按钮点击事件的UI中添加最后一行。
我知道如何动态添加Button
或EditText
,但我不知道如何动态添加和删除具有多列的行。
编辑: - 关于最后一行的一个重要事项是每列都是可编辑的。这意味着我需要每列的引用来获取它的内容。当我动态添加行时加上按钮应放置在新行中。同样,如果我删除行行加按钮应该转移到上一行。
我该怎么做。任何指南或任何方法都将受到赞赏。
这是我的XML文件。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/navi_bar" />
<Button
android:id="@+id/title_bar_btnBack"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="3dp"
android:background="@drawable/back_button_image" />
<Button
android:id="@+id/title_bar_btnExport"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/title_bar_btnBack"
android:layout_marginRight="10dp"
android:background="@drawable/export_button_normal" />
<!-- Create PDF Part 2 -->
<ImageView
android:id="@+id/pdf_Upper_Image"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/title_bar_btnBack"
android:background="@drawable/grid_bg_part1" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/pdf_Upper_Image"
android:layout_alignParentLeft="true"
android:text="Kassenbuch"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#3EC7F9"
android:textSize="23dp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginLeft="10dp"
android:layout_marginTop="2dp"
android:layout_toRightOf="@+id/textView1"
android:text="Name :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/txtName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView2"
android:layout_alignTop="@+id/textView2"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/textView2"
android:text="Akshay"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<!-- Custom Pdf Part 2 -->
<ImageView
android:id="@+id/pdf_Middle_Image"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/pdf_Upper_Image"
android:background="@drawable/grid_bg_part2"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_marginLeft="2dp"
android:text="Einnahmen"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txtName"
android:layout_alignTop="@+id/txtName"
android:layout_marginLeft="82dp"
android:layout_toRightOf="@+id/txtName"
android:text="Month :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignLeft="@+id/textView4"
android:layout_marginBottom="2dp"
android:text="Mand Nr. :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/txtMand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView5"
android:layout_alignTop="@+id/textView5"
android:layout_toRightOf="@+id/textView5"
android:text="Mand"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/txtMonth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txtName"
android:layout_alignTop="@+id/textView4"
android:layout_toRightOf="@+id/textView5"
android:text="05"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp"
/>
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txtYear"
android:layout_alignTop="@+id/txtMonth"
android:layout_toLeftOf="@+id/title_bar_btnExport"
android:text="Year :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView5"
android:layout_alignBottom="@+id/textView5"
android:layout_alignLeft="@+id/textView8"
android:text="Blatt :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/txtYear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txtMonth"
android:layout_alignLeft="@+id/title_bar_btnExport"
android:layout_alignTop="@+id/txtMonth"
android:text="2012"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/textView3"
android:text="Ausgabne"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9" >
</TextView>
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/textView6"
android:text="Bestand"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9" />
<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_toLeftOf="@+id/txtMand"
android:text="Datum"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9" />
<TextView
android:id="@+id/textView13"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_toLeftOf="@+id/textView5"
android:text="Beleg Konto"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="8dp" />
<TextView
android:id="@+id/textView14"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView13"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_marginRight="03dp"
android:layout_toLeftOf="@+id/textView13"
android:text="Gegen Konto"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="08dp" />
<TextView
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/textView14"
android:text="Anfangsbestand/Ubertrag"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="9dp" />
<TextView
android:id="@+id/textView11"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView13"
android:layout_alignTop="@+id/pdf_Middle_Image"
android:layout_marginLeft="25dp"
android:layout_toRightOf="@+id/textView12"
android:text="USt satz."
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="09dp" />
<TextView
android:id="@+id/txtBlatt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView9"
android:layout_alignBottom="@+id/textView9"
android:layout_toRightOf="@+id/textView9"
android:text="Blatt"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView11"
android:layout_alignLeft="@+id/textView9"
android:text="Text"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9" />
<include android:id="@+id/firstRow"
layout="@layout/custom_pdf3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/pdf_Middle_Image"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"/>
</RelativeLayout>
谢谢
答案 0 :(得分:2)
创建一个代表完整行的布局,然后您可以使用:
来自public View inflate (int resource, ViewGroup root)
(LayoutInflater
包中的一个类)的 android.view
来指定来自指定XML资源的 new view hierarchy
(例如您的新资源)行)。
现在,您可以使用特定标记动态地将此视图(您的行)添加到主布局中(例如向布局动态添加按钮)。
答案 1 :(得分:1)
尝试在运行时创建整个布局。创建一个包含所有ur列的单行,并设置最后一列的可见性。按下加号按钮时更改可见性。 我认为创建一行类型相对布局会很好。当你想删除一行然后你必须计算主布局中的相对布局,然后删除你想要删除的索引。
答案 2 :(得分:0)
您需要使用custom views.然后每个视图都可以是一个复杂的视图,您可以按照自己的意愿行事,这项任务应该不容易。
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginLeft="10dp"
android:layout_marginTop="2dp"
android:layout_toRightOf="@+id/textView1"
android:text="Name :"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#3EC7F9"
android:textSize="12dp" />
<com.sample.MyCustomView
android:id="@+id/myView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
然后MyCustomView
可以是线性布局或其他任何内容。
答案 3 :(得分:0)
上面的xml
您在Textview中完成了所有操作并进行了调整
而不是使用它,你必须在xml文件中创建Tablelayout
。
onButtonClick事件你必须动态创建一个新的tablerow然后使用tablerow.addview(componentsname)
添加组件,最后将tablerow添加到tablelayout
答案 4 :(得分:0)
在尝试了很多不同的事情后,我解决了我的问题,如下所示。我在xml中进行了一些更改。我使用LinearLayout
和ScrollView
。
我创建了一个完整行的xml文件。现在我的任务是在LinearLayout
中添加xml,我按以下方式添加。我每次都在按钮点击事件上调用此方法
public void AddDynamicView() {
linearLayout = (LinearLayout) findViewById(R.id.show_pdfTableLayout);
layoutInflater = (LayoutInflater) getApplicationContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.custom_pdf3, null);
linearLayout.addView(view);
list.add(view); // Here I have created list of View so that I can get the id of specific view.
}
我已经尝试使用TableLayout
,但我遇到了占用整行的问题。这就是我使用LinearLayout
的原因。
答案 5 :(得分:0)
可能我不太了解!!!
您可以使用ListView和Adapter执行问题中提到的所有操作。 您可以提供一个数组来保存字段,使用数组提供适配器并使用适配器提供listView。 如果需要新的Row,只需在数组中添加一个元素即可。 如果要删除行,只需将其从数组中删除即可。 如果要对项目进行排序,只需对数组进行排序即可。 如果要选择prev / next,只需使用listview选择方法。
我很想知道你检查了你的答案并不是绝对正确的方法。这是真的,但是如果您的目标ui很复杂,那么页面将需要大量的时间来渲染和滚动,而不是动态和优化的ListView。
如果你认为我的回答听起来不错,请告诉我用一些代码更新它。