Android Studio PieChart конвертирует строку / число с плавающей точкой в ​​целое число - тост - PullRequest
0 голосов
/ 24 января 2019

Я хочу сделать PieChart, и когда вы нажмете на выбранном вами поле на PieChart, вы увидите Value of Chart (integer 15 .. ect.)

У меня проблема с Toast.maketext когда показывать значение " counter " показывать значение 15,0 только для вставленных 15. Я хочу, чтобы в конце было число без .0.Когда я попробовал эту опцию ниже (конвертировать), приложение перестало работать:

  • int x = Integer.parseInt (counter);
  • int x = Integer.valueOf (counter)
  • try {x = Integer.parseInt (counter)} catch (NumberFormat Exception nfe) {}

Мой код:

pieChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
        @Override
        public void onValueSelected(Entry e, Highlight h) {
            Log.d(TAG, "onValueSelected: Value select from chart.");
            Log.d(TAG, "onValueSelected: " + e.toString());
            Log.d(TAG, "onValueSelected: " + h.toString());


            int pos1 = e.toString().indexOf("y: ");
            String counter = e.toString().substring(pos1 + 3);

            for(int i = 0; i < yData.length; i++){
                if(yData[i] == Float.parseFloat(counter)){
                    pos1 = i;
                    break;
                }

            }
                    String days = xData[pos1];
                    /*
                       1.)  int x = Integer.parseInt(counter);
                    2.) int x = Integer.valueOf(counter)
                     3.)try{ x = Integer.parseInt(counter)}
                    catch(NumberFormat Exception nfe){}
                    */

            Toast.makeText(Main2Activity.this,  days+ " Day" + "counter" + x, Toast.LENGTH_LONG).show();
            //Toast.makeText(Main2Activity.this,  days+ " Day" + "counter" + counter, Toast.LENGTH_LONG).show();
            //add counter to Toast if you want to show counter
        }

        @Override
        public void onNothingSelected() {

        }
    });

Спасибо за ответы:)

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Пока я решал вот так:

Log.d(TAG, "onValueSelected: counter num " +counter);
            for(int i = 0; i < yData.length; i++){
                if(yData[i] == Float.parseFloat(counter)){
                    pos1 = i;
                    break;
                }

            }
            String days = xData[pos1];

            switch (pos1) {
                case 0:
                    Toast.makeText(Main2Activity.this, days + " Day " + "\n" + "Numbers " +numberBad, Toast.LENGTH_SHORT).show();
                    break;
                case 1:
                    Toast.makeText(Main2Activity.this, days + " Day " + "\n" + "Numbers " +numberGod, Toast.LENGTH_SHORT).show();
                    break;
                case 2:
                    Toast.makeText(Main2Activity.this, days + " Day " + "\n" + "Numbers " +numberNor, Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
0 голосов
/ 24 января 2019

Можете ли вы попробовать

System.out.print (String.format ("% 1.0f", счетчик));

        Toast.makeText(Main2Activity.this,  days+ " Day" + "counter" + String.format("%1.0f", counter), Toast.LENGTH_LONG).show();
...