2017-08-16 2 views
0

Ich habe Tabellenzeile dynamisch erstellt und hinzugefügt mit Tabellenlayout und jetzt möchte ich die Hintergrundfarbe der ausgewählten Zeile und eine bestimmte Textansicht ändern, wenn Benutzer eine andere Zeile vorherige Zeile Farbe auswählen sollte deaktiviert sein. Vielen Dank im Voraus. unten ist mein Code.Wie ändere ich Hintergrundfarbe dynamisch erstellt Tabellenzeile

for(int s=0;s<lstFilteredTradeOrder.size();s++) 
    { 
     final TableRow tableRow   = new TableRow(OrderbookFragment.this.getActivity()); 
     tableRow.setId(s); 

     tableRow.setClickable(true); 
     tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); 
     tableRow.setWeightSum(1); 
     final View rowView; 
     rowView = OrderbookFragment.this.getActivity().getLayoutInflater().inflate(R.layout.custom_order_book, null); 
     TextView textName     = (TextView)rowView.findViewById(R.id.txt_name); 
     TextView textLastUpdated   = (TextView)rowView.findViewById(R.id.txt_lastupdated); 
     TextView textAction     = (TextView)rowView.findViewById(R.id.txt_action); 
     TextView textOrdPrice    = (TextView)rowView.findViewById(R.id.txt_ordprice); 
     TextView textOrdQty     = (TextView)rowView.findViewById(R.id.txt_ordqty); 
     TextView textStatus     = (TextView)rowView.findViewById(R.id.txt_status); 
     final ImageView imageView    =(ImageView)rowView.findViewById(R.id.image_arrow); 

     textName.setText(lstFilteredTradeOrder.get(s).getstockCodeName()); 
     textLastUpdated.setText(FormatUtil.formatDateString(String.valueOf(lstFilteredTradeOrder.get(s).getLastUpdate()), 
       "yyyyMMddHHmmss", "dd/MM/yyyy HH:mm:ss")); 
     textAction.setText(lstFilteredTradeOrder.get(s).getAction()); 
     textOrdPrice.setText(String.format("%.3f", lstFilteredTradeOrder.get(s).getPrice())); 
     textOrdQty.setText(FormatUtil.formatOpDouble(lstFilteredTradeOrder.get(s).getQuantity())); 
     textStatus.setText(lstFilteredTradeOrder.get(s).getStatusText()); 


     tableRow.addView(rowView); 

     tableRow.setOnClickListener(new View.OnClickListener() { 
       Boolean color=true; 

      public void onClick(View view) { 

       // here would like to change the background color. 
       TradeOrder selectOrd= lstFilteredTradeOrder.get(tableRow.getId()); 
       constructOrderbookOnclick(selectOrd); 
      } 
     }); 


     tblOrderbookDetails.addView(tableRow, new TableLayout.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 
    } 

Antwort

0

Verwenden Sie einfach unten Code

data_Row_tv.setBackgroundColor(ContextCompat.getColor(context, R.color.your_color)); 
+0

Danke, aber es ist nicht richtig funktioniert, weil, wenn ich eine andere Zeile vorherigen Reihe bin der Auswahl auch hervorgehoben, und ich möchte zu einem Zeitpunkt eine Zeile markieren. –

Verwandte Themen