Advertisement
predki

Wyświetlanie walut

Apr 24th, 2018
580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 7.14 KB | None | 0 0
  1. fun showCurrencies(rates:List<Currency>,name:String) {
  2.         val leftRowMargin = 0
  3.         val topRowMargin = 0
  4.         val rightRowMargin = 0
  5.         val bottomRowMargin = 0
  6.         var textSize = 0
  7.         var smallTextSize = 0
  8.         var mediumTextSize = 0
  9.  
  10.         textSize = resources.getDimension(R.dimen.font_size_verysmall).toInt()
  11.         smallTextSize = resources.getDimension(R.dimen.font_size_small).toInt()
  12.         mediumTextSize = resources.getDimension(R.dimen.font_size_medium).toInt()
  13.         val rows = rates.count()
  14.         supportActionBar!!.setTitle("Waluty")
  15.         var textSpacer: TextView? = null
  16.  
  17.  
  18.         val dateFormat = SimpleDateFormat("HH:mm - dd.MM.yyyy")
  19.         var date:Date?=null
  20.  
  21.         // -1 oznacza nagłówek
  22.         for (i in -1..rows - 1) {
  23.             var row: Currency? = null
  24.  
  25.             if (i < 0) {
  26.                 //nagłówek
  27.                 textSpacer = TextView(this)
  28.                 textSpacer.text = ""
  29.             } else {
  30.                 row = rates.get(i)
  31.             }
  32.  
  33.             if (row!=null)
  34.                 date=row.date
  35.  
  36.             val tv = TextView(this)
  37.             tv.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
  38.                     TableRow.LayoutParams.WRAP_CONTENT)
  39.             tv.gravity = Gravity.LEFT
  40.             tv.setPadding(20, 15, 20, 15)
  41.  
  42.             if (i == -1) run {
  43.                 tv.text = name
  44.                 tv.setBackgroundColor(Color.parseColor("#f0f0f0"))
  45.                 tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, mediumTextSize.toFloat())
  46.             } else run({
  47.                 tv.setBackgroundColor(Color.parseColor("#f8f8f8"))
  48.                 tv.setText(row?.code)
  49.                 tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, mediumTextSize.toFloat())
  50.             })
  51.  
  52.             val tv2 = TextView(this)
  53.             if (i == -1) {
  54.                 tv2.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
  55.                         TableRow.LayoutParams.MATCH_PARENT)
  56.                 tv2.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize.toFloat())
  57.             } else {
  58.                 tv2.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
  59.                         TableRow.LayoutParams.MATCH_PARENT)
  60.                 tv2.setTextSize(TypedValue.COMPLEX_UNIT_PX, mediumTextSize.toFloat())
  61.             }
  62.  
  63.             tv2.gravity = Gravity.LEFT
  64.  
  65.             tv2.setPadding(20, 15, 20, 15)
  66.             if (i == -1) {
  67.                 tv2.text = "Kurs"
  68.                 tv2.setBackgroundColor(Color.parseColor("#f7f7f7"))
  69.             } else {
  70.                 tv2.setBackgroundColor(Color.parseColor("#ffffff"))
  71.                 tv2.setTextColor(Color.parseColor("#000000"))
  72.                 tv2.setText(row?.rate.toString())
  73.             }
  74.  
  75.             val layCustomer = LinearLayout(this)
  76.             layCustomer.orientation = LinearLayout.VERTICAL
  77.             layCustomer.setPadding(20, 10, 20, 10)
  78.             layCustomer.setBackgroundColor(Color.parseColor("#f8f8f8"))
  79.  
  80.             val tv3 = TextView(this)
  81.             if (i == -1) {
  82.                 tv3.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
  83.                         TableRow.LayoutParams.MATCH_PARENT)
  84.                 tv3.setPadding(5, 5, 0, 5)
  85.                 tv3.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize.toFloat())
  86.             } else {
  87.                 tv3.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
  88.                         TableRow.LayoutParams.MATCH_PARENT)
  89.                 tv3.setPadding(5, 0, 0, 5)
  90.                 tv3.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize.toFloat())
  91.             }
  92.  
  93.             tv3.gravity = Gravity.TOP
  94.  
  95.             if (i == -1) {
  96.                 tv3.text = "Zmiana"
  97.                 tv3.setBackgroundColor(Color.parseColor("#f0f0f0"))
  98.             } else {
  99.                 tv3.setBackgroundColor(Color.parseColor("#f8f8f8"))
  100.                 tv3.setTextColor(Color.parseColor(row?.getColor()))
  101.                 tv3.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize.toFloat())
  102.                 tv3.setText(row?.percentChange())
  103.             }
  104.             layCustomer.addView(tv3)
  105.  
  106.  
  107.             if (i > -1) {
  108.                 val tv3b = TextView(this)
  109.                 tv3b.layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
  110.                         TableRow.LayoutParams.WRAP_CONTENT)
  111.  
  112.                 tv3b.gravity = Gravity.RIGHT
  113.                 tv3b.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize.toFloat())
  114.                 tv3b.setPadding(5, 1, 0, 5)
  115.                 tv3b.setTextColor(Color.parseColor("#aaaaaa"))
  116.                 tv3b.setBackgroundColor(Color.parseColor("#f8f8f8"))
  117.                 tv3b.setText(row?.formatChange())
  118.                 layCustomer.addView(tv3b)
  119.             }
  120.  
  121.  
  122.             // add table row
  123.             val tr = TableRow(this)
  124.             tr.id = i + 1
  125.             val trParams = TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
  126.                     TableLayout.LayoutParams.MATCH_PARENT)
  127.             trParams.setMargins(leftRowMargin, topRowMargin, rightRowMargin, bottomRowMargin)
  128.             tr.setPadding(10, 0, 10, 0)
  129.             tr.layoutParams = trParams
  130.  
  131.             tr.addView(tv)
  132.             tr.addView(tv2)
  133.             tr.addView(layCustomer)
  134.  
  135.             tableCurrencies.addView(tr, trParams)
  136.  
  137.             if (i > -1) {
  138.  
  139.                 val trSep = TableRow(this)
  140.                 val trParamsSep = TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
  141.                         TableLayout.LayoutParams.WRAP_CONTENT)
  142.                 trParamsSep.setMargins(leftRowMargin, topRowMargin, rightRowMargin, bottomRowMargin)
  143.  
  144.                 trSep.layoutParams = trParamsSep
  145.                 val tvSep = TextView(this)
  146.                 val tvSepLay = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
  147.                         TableRow.LayoutParams.WRAP_CONTENT)
  148.                 tvSepLay.span = 4
  149.                 tvSep.layoutParams = tvSepLay
  150.                 tvSep.setBackgroundColor(Color.parseColor("#d9d9d9"))
  151.                 tvSep.height = 1
  152.  
  153.                 trSep.addView(tvSep)
  154.                 tableCurrencies.addView(trSep, trParamsSep)
  155.             }
  156.  
  157.  
  158.         }
  159.         val trDate = TableRow(this)
  160.         val trParamsSep = TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
  161.                 TableLayout.LayoutParams.WRAP_CONTENT)
  162.         trParamsSep.setMargins(leftRowMargin, topRowMargin, rightRowMargin, bottomRowMargin)
  163.  
  164.         trDate.layoutParams = trParamsSep
  165.         val tvSep = TextView(this)
  166.         val tvSepLay = TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
  167.                 TableRow.LayoutParams.MATCH_PARENT)
  168.         tvSepLay.span = 4
  169.         tvSep.layoutParams = tvSepLay
  170.         tvSep.setBackgroundColor(Color.parseColor("#d9d9d9"))
  171.  
  172.         tvSep.setTextSize(TypedValue.COMPLEX_UNIT_PX, smallTextSize.toFloat())
  173.         if (date!=null)
  174.             tvSep.text=dateFormat.format(date)
  175.  
  176.         trDate.addView(tvSep)
  177.         tableCurrencies.addView(trDate, trParamsSep)
  178.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement