In meinem main.xml habe ich ein Linearlayout:Wie man Daten von dynamisch erzeugtem EditText und TextView innerhalb eines linearen Layouts erhält?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearMain"
>
</LinearLayout>
Dann in meinem Main.java ich Werte aus der DB bin Abrufen (Name und Preis eines Artikels). Dann habe ich erstellt dynamisch meine Form den folgenden Code verwendet:
Cursor cursor = mydb.getAllJuice();
lm = (LinearLayout) findViewById(R.id.linearMain);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT);
while (cursor.moveToNext()) {
int cid = cursor.getInt(0);
String id = Integer.toString(cid);
String name = cursor.getString(1);
String price = cursor.getString(2);
// Create LinearLayout
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
// Create TextView
TextView product = new TextView(this);
product.setText(name+" ");
ll.addView(product);
// Create TextView
TextView pricetxt = new TextView(this);
pricetxt.setText(" "+price);
ll.addView(pricetxt);
// Create TextView
TextView currency = new TextView(this);
currency.setText(" LL ");
ll.addView(currency);
// Create TextView
TextView qtylabel = new TextView(this);
qtylabel.setText("QTY ");
ll.addView(qtylabel);
EditText qty = new EditText(this);
qty.setMinLines(1);
qty.setMaxLines(3);
ll.addView(qty);
lm.addView(ll);
}
// Create LinearLayout
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
final Button btn = new Button(this);
// Give button an ID
int j = 122;
btn.setId(j+1);
btn.setText("Add To Cart");
// set the layoutParams on the button
btn.setLayoutParams(params);
//Add button to LinearLayout
ll.addView(btn);
//Add button to LinearLayout defined in XML
lm.addView(ll);
Der Benutzer wird die Anzahl der Elemente eingeben können, und folglich onClick der Taste ein Textview manipuliert werden.
Um diese Textansicht zu füllen, muss ich alle Elemente, die erstellt wurden, um den Preis zu überprüfen, überprüfen und überprüfen, wie die Zahl, die der Benutzer eingegeben hat. Ich habe versucht, den Code unten verwenden, aber ich bin nicht in der Lage, die spezifischen Artikel zuzugreifen, die ich will, wie ich in jeder Zeile 2 Textview und 1 editText haben:
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// code will be here
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
total = 0 ;
View v1 = null;
for(int i=0; i<lm.getChildCount(); i++) {
v1 = lm.getChildAt(i);
}
}
});
Wie kann ich das andere Element in der v1 zugreifen?
Sieht so aus, als könnten Sie das ViewHolder-Muster verwenden –
Sind Sie sicher, dass Sie RecyclerView nicht für Ihren Anwendungsfall verwenden können? – Sharj