2017-12-11 7 views

Antwort

0

Der einfachste Weg zu schaffen, nicht in der Lage, dies zu tun wäre, die Elemente in einer ListView/RecyclerView anzuzeigen und einfach das neue Element in den Adapter einzufügen und den Adapter daran zu hindern, die neue Zeile Item hinzuzufügen. Sie müssen sich nicht um die Artikel-ID kümmern und können die Adapterposition einfach als ID verwenden.

Wenn Sie eine Ansicht programmgesteuert erstellen, können Sie die View-ID zuweisen, indem Sie View.setID() aufrufen. Dies kann ein beliebiges int sein (es muss eindeutig sein). Ich würde diesen Ansatz nicht empfehlen, da es sehr mühsam wird, die IDs und die Daten, die die Elemente enthalten, zu verfolgen. Wenn Sie RecyclerView/ListView verwenden, wird dieses Problem durch die Trennung der Daten von den Präsentationsebenen erhöht.

+0

Danke für die Eingaben, es funktioniert gut – John

0

Dies ist der Code neue Zeile dynamisch hinzuzufügen, aber neue ids

public void onAddField(View v) { 
     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     final View rowView = inflater.inflate(R.layout.field, null); 
     // Add the new row before the add field button. 
     parentLinearLayout.addView(rowView, parentLinearLayout.getChildCount() - 6); 
    } 

in field.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:orientation="horizontal" >  
    <EditText 
     android:id="@+id/grid_Itemcode" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="3"  
     android:inputType="textPhonetic" 
     android:hint="Code" /> 
    <EditText 
     android:id="@+id/grid_itemdesc" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="5"   
     android:inputType="textPersonName" 
     android:hint="Description" /> 
    <EditText 
     android:id="@+id/grid_itemQty" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2"   
     android:inputType="phone" 
     android:hint="Qty" /> 
    <EditText 
     android:id="@+id/grid_itemRate" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2"   
     android:inputType="phone" 
     android:hint="Rate" /> 
<Button 
     android:id="@+id/delete_button" 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:background="@android:drawable/ic_delete" 
     android:onClick="onDelete"/> 
</LinearLayout> 
Verwandte Themen