2015-11-18 8 views
1

Я динамически добавляю строки в таблицу layout.I хочу ограничить представления до 10 просмотров i.e отображать только 10 строк.Как ограничить динамически созданные представления до 10?

OnClick Я вызываю метод под названием showItem().

private void showItem(String json) { 
    String itembarcode = ""; 
    String itemdesc = ""; 
    String weight = ""; 
    String rate = ""; 
    String making = ""; 
    String netrate = ""; 
    String total = ""; 


    try { 
     JSONObject jsonObject = new JSONObject(json); 
     JSONArray result = jsonObject.getJSONArray(ParseBarcode.JSON_ARRAY); 
     JSONObject itemData = result.getJSONObject(0); 
     itembarcode = itemData.getString(ParseBarcode.KEY_BARCODE); 
     itemdesc = itemData.getString(ParseBarcode.KEY_DESC); 
     weight = itemData.getString(ParseBarcode.KEY_WEIGHT); 
     rate = itemData.getString(ParseBarcode.KEY_RATE); 
     making = itemData.getString(ParseBarcode.KEY_MAKING); 
     netrate = itemData.getString(ParseBarcode.KEY_NETRATE); 
     total = itemData.getString(ParseBarcode.KEY_TOTAL); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 


    //table started 

    TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); 
    TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 1f); 
    rowParams.setMargins(16, 0, 16, 0); 

    TableLayout tableLayout = new TableLayout(AddInvEst.this); 
    tableLayout.setLayoutParams(tableParams); 

    TableRow newRow = new TableRow(AddInvEst.this); 
    newRow.setLayoutParams(tableParams); 

    barCode = new TextView(AddInvEst.this); 
    barCode.setLayoutParams(rowParams); 
    barCode.setGravity(Gravity.CENTER); 

    itemDesc = new TextView(AddInvEst.this); 
    itemDesc.setLayoutParams(rowParams); 
    itemDesc.setGravity(Gravity.CENTER); 

    weightLine = new TextView(AddInvEst.this); 
    weightLine.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 0.75f)); 
    weightLine.setGravity(Gravity.CENTER); 

    rateAmount = new EditText(AddInvEst.this); 
    rateAmount.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 0.5f)); 
    rateAmount.setGravity(Gravity.CENTER); 
    rateAmount.addTextChangedListener(rateTextWatcher); 

    makingAmount = new EditText(AddInvEst.this); 
    makingAmount.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 0.5f)); 
    makingAmount.setGravity(Gravity.CENTER); 
    makingAmount.addTextChangedListener(mkAmountTextWatcher); 

    netRate = new TextView(AddInvEst.this); 
    netRate.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 0.5f)); 
    netRate.setGravity(Gravity.CENTER); 
    netrates.add(netrate); 

    itemtotal = new TextView(AddInvEst.this); 
    itemtotal.setLayoutParams(rowParams); 
    itemtotal.setGravity(Gravity.CENTER); 
    totals.add(total); 

    double[] doubleList = new double[totals.size()]; 
    double sum = 0; 
    for (int i = 0; i < totals.size(); ++i) { 
     doubleList[i] = Double.parseDouble(totals.get(i)); 
     sum += doubleList[i]; 
    } 

    barCode.setText(itembarcode); 
    itemDesc.setText(itemdesc); 
    weightLine.setText(weight); 
    rateAmount.setText(rate); 
    makingAmount.setText(making); 
    netRate.setText(netrate); 
    itemtotal.setText(total); 
    textViewSum.setText(sum * (0.02) + sum + "");//set total text to sum 
    textViewVat.setText(sum * (0.02) + ""); 

    newRow.addView(barCode); 
    newRow.addView(itemDesc); 
    newRow.addView(weightLine); 
    newRow.addView(rateAmount); 
    newRow.addView(makingAmount); 
    newRow.addView(netRate); 
    newRow.addView(itemtotal); 
    itemTable.addView(newRow); 
} 

Сейчас onClick я надуть один ряд (вид). Я не хочу, чтобы пользователь раздувал представление более 10 раз. Но каждый раз, когда нажимается кнопка, только одна строка (вид) раздувается.

+0

Спасибо @ArthurKorchagin –

+0

Вы хотите 10 результатов по одним щелчком мыши, или один результат за клик до 10 кликов? – mjp66

+0

@ mjp66 один результат за клик до 10 кликов –

ответ

0
yourButton.setOnClickListener(new View.OnClickListener() { 
    int count = 0; 
    public void onClick(View v) { 
     if (count++ < 10) { 
      showItem(); 
     } 
    } 
}); 
+0

Спасибо большое @ mjp66 :) –

+0

Добро пожаловать и счастливы программирования;) – mjp66

+0

Большое вам спасибо :) –