2016-07-07 6 views
1

Ich erstelle eine dynamische Zeile und füge diese Zeile in das Tabellenlayout ein. Während der Zeit der Zeilenerstellung wird der Wert jedes textViews gesetzt. Aber wir haben Probleme beim Setzen des Wertes auf Klick-Listener jedes Zeilenelements. Tatsächlich haben wir zwei textView in jeder Zeile und beim ersten Klick auf die erste Textansicht öffnen wir die Datenauswahl. also möchte ich den Wert bei textview so festsetzen.Wie wird der Wert des Zeilenelements im Tabellenlayout dynamisch in Android gesetzt?

tableLayout = (TableLayout) dialog.findViewById(R.id.tableLayout_popup); 
View tableRow = LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup1st_row, null, false); 
       tableLayout.addView(tableRow); 
      for (int i = 0; i < masterDataList.size(); i++) { 
       /* if (i == 0) { 
        View tableRow = LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup1st_row, null, false); 
        tableLayout.addView(tableRow); 

       } else {*/ 
       final View tableRow1 = LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup_row, null, false); 
         tableRow1.setId(i); 
        tv1 = (TextView)tableRow1.findViewById(R.id.textView24); 
        tv2 = (TextView)tableRow1.findViewById(R.id.textView25); 
        tv2.setId(i); 
        tv1.setText(masterDataList.get(i).getLineItemNumber()); 
        tv2.setText((masterDataList.get(i).getRequestedDeliveryDate())); 

       tv2.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         rowNumber = tableRow1.getId(); 


         new DatePickerDialog(MileStoneActivity.this, date, myCalendar 
           .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
           myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 

         // dialog.dismiss(); 


         // } 

        } 
       }); 

        tableLayout.addView(tableRow1); 

Das ist meine Datumsauswahl listner: myCalendar = Calendar.getInstance();

   final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, int monthOfYear, 
              int dayOfMonth) { 
         // TODO Auto-generated method stub 
         myCalendar.set(Calendar.YEAR, year); 
         myCalendar.set(Calendar.MONTH, monthOfYear); 
         myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
         updateLabel(); 
        } 

       }; 

Ich konnte den Textwert von tv2 nicht festlegen. Ich möchte den Wert einer bestimmten Zeile ändern, auf die geklickt wurde. Bitte hilf mir. jede Hilfe würde im fortgeschrittenen Stadium geschätzt werden.

Antwort

0

Ich weiß nicht, ob ich dich richtig verstanden habe, aber du könntest Datum eine Methode machen, die den Hörer zurückbringt. In der Methode übergeben Sie den Parameter tv2 und updateLabel mit diesem Parameter.

private DatePickerDialog.OnDateSetListener getDate(final TextView tv){ 
    return new DatePickerDialog.OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, int monthOfYear, 
              int dayOfMonth) { 
         // TODO Auto-generated method stub 
         myCalendar.set(Calendar.YEAR, year); 
         myCalendar.set(Calendar.MONTH, monthOfYear); 
         myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
         updateLabel(tv); 
        } 

       }; 
} 

tun dies dann in Datepicker Konstruktor:

new DatePickerDialog(MileStoneActivity.this, getDate(tv2), myCalendar 
           .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
           myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 
+0

Thx für Ihre Antwort. aber wie kann ich wissen, welche reihe tv2 textView gehören zu – Anand

+0

@Anand übergeben der tv können Sie die parentView, das wird die Zeile – user6547359

+0

wird es den Wert der letzten Zeile textview gesetzt, nicht gewünschte Zeile – Anand

Verwandte Themen