Advertisement
Fhernd

MainActivity.java

Sep 6th, 2017
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.74 KB | None | 0 0
  1. package co.ortizol;
  2.  
  3. import android.graphics.Typeface;
  4. import android.support.design.widget.TextInputLayout;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.view.Menu;
  8. import android.view.MenuItem;
  9. import android.view.View;
  10. import android.view.inputmethod.InputMethodManager;
  11. import android.widget.EditText;
  12. import android.widget.Toast;
  13.  
  14. import com.github.mikephil.charting.charts.BarChart;
  15. import com.github.mikephil.charting.components.Legend;
  16. import com.github.mikephil.charting.components.XAxis;
  17. import com.github.mikephil.charting.data.BarData;
  18. import com.github.mikephil.charting.data.BarDataSet;
  19. import com.github.mikephil.charting.data.BarEntry;
  20. import com.github.mikephil.charting.data.Entry;
  21. import com.github.mikephil.charting.formatter.IAxisValueFormatter;
  22. import com.github.mikephil.charting.highlight.Highlight;
  23. import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;
  24. import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
  25. import com.github.mikephil.charting.utils.ColorTemplate;
  26. import com.google.android.gms.ads.AdRequest;
  27. import com.google.android.gms.ads.InterstitialAd;
  28.  
  29. import java.util.ArrayList;
  30.  
  31. public class MainActivity extends AppCompatActivity implements OnChartValueSelectedListener {
  32.  
  33.     private TextInputLayout tilNumeroDia;
  34.     private TextInputLayout tilGasto;
  35.  
  36.     protected BarChart mChart;
  37.     private ArrayList<BarEntry> yVals1;
  38.     private InterstitialAd interstitialAd;
  39.  
  40.     @Override
  41.     protected void onCreate(Bundle savedInstanceState) {
  42.         super.onCreate(savedInstanceState);
  43.         setContentView(R.layout.activity_main);
  44.  
  45.         interstitialAd = new InterstitialAd(this);
  46.         interstitialAd.setAdUnitId(getString(R.string.id_publicidad));
  47.  
  48.         tilNumeroDia = (TextInputLayout) findViewById(R.id.tilNumeroDia);
  49.         tilGasto = (TextInputLayout) findViewById(R.id.tilGasto);
  50.  
  51.         mChart = (BarChart) findViewById(R.id.brcGastosDiarios);
  52.         mChart.setOnChartValueSelectedListener(this);
  53.  
  54.         mChart.setDrawBarShadow(false);
  55.         mChart.setDrawValueAboveBar(true);
  56.  
  57.         mChart.setMaxVisibleValueCount(60);
  58.  
  59.  
  60.         mChart.setPinchZoom(false);
  61.  
  62.         mChart.setDrawGridBackground(false);
  63.  
  64.  
  65.         IAxisValueFormatter xAxisFormatter = new Formatter();
  66.  
  67.         XAxis xAxis = mChart.getXAxis();
  68.         xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
  69.         xAxis.setTypeface(Typeface.SERIF);
  70.         xAxis.setDrawGridLines(false);
  71.         xAxis.setGranularity(1f);
  72.         xAxis.setLabelCount(6);
  73.         xAxis.setValueFormatter(xAxisFormatter);
  74.         Legend l = mChart.getLegend();
  75.         l.setPosition(Legend.LegendPosition.BELOW_CHART_LEFT);
  76.         l.setForm(Legend.LegendForm.SQUARE);
  77.         l.setFormSize(9f);
  78.         l.setTextSize(11f);
  79.         l.setXEntrySpace(4f);
  80.  
  81.         yVals1 = new ArrayList<BarEntry>();
  82.  
  83.         yVals1.add(new BarEntry(0, 0));
  84.         yVals1.add(new BarEntry(1, 0));
  85.         yVals1.add(new BarEntry(2, 0));
  86.         yVals1.add(new BarEntry(3, 0));
  87.         yVals1.add(new BarEntry(4, 0));
  88.         yVals1.add(new BarEntry(5, 0));
  89.         yVals1.add(new BarEntry(6, 0));
  90.  
  91.         actualizarGrafico();
  92.     }
  93.  
  94.     public void onClickAgregarGasto(View view) {
  95.         EditText txtNumeroDia = tilNumeroDia.getEditText();
  96.         EditText txtGasto = tilGasto.getEditText();
  97.  
  98.         if (!"".equals(txtNumeroDia.getText().toString())
  99.                 && !"".equals(txtGasto.getText().toString())){
  100.             int numeroDia = Integer.parseInt(txtNumeroDia.getText().toString());
  101.  
  102.             if (numeroDia >= 1 && numeroDia <= 6) {
  103.                 yVals1.get(numeroDia).setY(Float.parseFloat(txtGasto.getText().toString()));
  104.  
  105.                 actualizarGrafico();
  106.  
  107.                 View v = this.getCurrentFocus();
  108.                 if (v != null) {
  109.                     InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
  110.                     imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
  111.                 }
  112.             } else {
  113.                 Toast.makeText(this, getString(R.string.restriccion_numero_dia), Toast.LENGTH_SHORT).show();
  114.             }
  115.         } else {
  116.             Toast.makeText(this, getString(R.string.campos_obligatorios), Toast.LENGTH_SHORT).show();
  117.         }
  118.     }
  119.  
  120.  
  121.     private void actualizarGrafico() {
  122.  
  123.         float start = 0f;
  124.  
  125.         mChart.getXAxis().setAxisMinValue(start);
  126.         mChart.getXAxis().setAxisMaxValue(start + 6 + 1);
  127.  
  128.         mChart.getAxisRight().setAxisMinimum(0);
  129.         mChart.getAxisLeft().setAxisMinimum(0);
  130.         mChart.getAxisLeft().setSpaceMax(10);
  131.         mChart.getAxisRight().setSpaceMax(10);
  132.         mChart.getAxisLeft().setSpaceMin(10);
  133.         mChart.getAxisRight().setSpaceMin(10);
  134.  
  135.         BarDataSet set1;
  136.  
  137.         if (mChart.getData() != null && mChart.getData().getDataSetCount() > 0) {
  138.             set1 = (BarDataSet) mChart.getData().getDataSetByIndex(0);
  139.             set1.setValues(yVals1);
  140.             mChart.getData().notifyDataChanged();
  141.             mChart.invalidate();
  142.         } else {
  143.  
  144.             set1 = new BarDataSet(yVals1, "Días");
  145.             set1.setColors(ColorTemplate.MATERIAL_COLORS);
  146.  
  147.             ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
  148.             dataSets.add(set1);
  149.             BarData data = new BarData(dataSets);
  150.             data.setValueTextSize(10f);
  151.             data.setValueTypeface(Typeface.SERIF);
  152.             data.setBarWidth(0.9f);
  153.             mChart.setData(data);
  154.             mChart.getData().notifyDataChanged();
  155.             mChart.invalidate();
  156.         }
  157.     }
  158.  
  159.     @Override
  160.     public void onValueSelected(Entry e, Highlight h) {
  161.  
  162.     }
  163.  
  164.     @Override
  165.     public void onNothingSelected() {
  166.  
  167.     }
  168.  
  169.     @Override
  170.     public boolean onCreateOptionsMenu(Menu menu) {
  171.         getMenuInflater().inflate(R.menu.main_menu, menu);
  172.  
  173.         return super.onCreateOptionsMenu(menu);
  174.     }
  175.  
  176.     @Override
  177.     public boolean onOptionsItemSelected(MenuItem item) {
  178.  
  179.         if (item.getItemId() == R.id.mitMostrarAnuncio) {
  180.  
  181.             verPublicidad();
  182.         }
  183.  
  184.  
  185.         return super.onOptionsItemSelected(item);
  186.     }
  187.  
  188.     private void verPublicidad() {
  189.         if(interstitialAd != null && interstitialAd.isLoaded()){
  190.             interstitialAd.show();
  191.         }else {
  192.             Toast.makeText(this, getString(R.string.publicidad_cargando), Toast.LENGTH_SHORT).show();
  193.             iniciar();
  194.         }
  195.     }
  196.  
  197.     private void iniciar() {
  198.         AdRequest adRequest = new AdRequest.Builder().build();
  199.         interstitialAd.loadAd(adRequest);
  200.     }
  201.  
  202.     @Override
  203.     protected void onResume() {
  204.         super.onResume();
  205.         iniciar();
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement