使用按钮android分配变量值

时间:2015-10-30 11:52:20

标签: android onclick add

我有一个小程序。你必须在EditText上插入3个值,并有一个带有metod OnClick的按钮。但是当我按下按钮(必须添加一些变量)时,我的应用程序正在关闭。

我不知道问题是否是一些变量,但我正在阅读并且无法修复它。

这就是我的全班:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.TextView;

public class Preguntas extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_preguntas);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_preguntas, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void calculaP(){
    //Declaramos las 2 variables de cada uno de los valores
    String edadActual;
    int EdadActualFinal;
    String edadInicial;
    int edadInicialFinal;
    String mediaSemana;
    int mediaSemanaFinal;
    String Resultado;
    int ResultadoFinal;

    //Objetos de cada widget
    EditText miEdad = (EditText)findViewById(R.id.EdadActual);
    EditText miEdadInicial = (EditText)findViewById(R.id.EdadInicial);
    EditText miMedia = (EditText)findViewById(R.id.MediaSemana);
    TextView MiResultado = (TextView)findViewById(R.id.ResultadoValor);

    //Convertimos los String por Integers
    edadActual = miEdad.getText().toString();
    EdadActualFinal = Integer.parseInt(edadActual);

    edadInicial = miEdadInicial.getText().toString();
    edadInicialFinal = Integer.parseInt(edadInicial);

    mediaSemana = miMedia.getText().toString();
    mediaSemanaFinal = Integer.parseInt(mediaSemana);

    Resultado = MiResultado.getText().toString();
    ResultadoFinal = Integer.parseInt(Resultado);

    ResultadoFinal = ((EdadActualFinal - edadInicialFinal)* (mediaSemanaFinal * 48));

    MiResultado.setText(ResultadoFinal);

2 个答案:

答案 0 :(得分:0)

但这是一个错误

  

在活动类中找不到方法calculaP(View)   com.example.dam.semenapp.Preguntas用于视图类的onClick处理程序   android.support.v7.widget.AppCompatButton,id为'cum'10-30   Android无法找到您的功能。

答案 1 :(得分:0)

只需尝试移动CalculaP()以下onCreate()方法内的行:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.TextView;

public class Preguntas extends AppCompatActivity {

   EditText miEdad,miEdadInicial,miMedia;
   TextView MiResultado;
   Button myButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_preguntas);
     miEdad = (EditText)findViewById(R.id.EdadActual);
     miEdadInicial = (EditText)findViewById(R.id.EdadInicial);
     miMedia = (EditText)findViewById(R.id.MediaSemana);
     MiResultado = (TextView)findViewById(R.id.ResultadoValor);
     myButton = (Button)findViewById(R.id.myButton);
     myButton.setOnClickListener(new View.OnClickListener(){

      public void OnClick(View v){
            calculaP(); //Call your method
         }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   // Inflate the menu; this adds items to the action bar if it is present.
     getMenuInflater().inflate(R.menu.menu_preguntas, menu);
      return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
   // as you specify a parent activity in AndroidManifest.xml.
   int id = item.getItemId();

   //noinspection SimplifiableIfStatement
   if (id == R.id.action_settings) {
        return true;
     }

   return super.onOptionsItemSelected(item); 
}

 public void calculaP(){
//Declaramos las 2 variables de cada uno de los valores
String edadActual;
int EdadActualFinal;
String edadInicial;
int edadInicialFinal;
String mediaSemana;
int mediaSemanaFinal;
String Resultado;
int ResultadoFinal;

//Objetos de cada widget
//Comment below four lines and move them to Oncreate() instead.
 /*
EditText miEdad = (EditText)findViewById(R.id.EdadActual);
EditText miEdadInicial = (EditText)findViewById(R.id.EdadInicial);
EditText miMedia = (EditText)findViewById(R.id.MediaSemana);
TextView MiResultado = (TextView)findViewById(R.id.ResultadoValor);
   */
//Convertimos los String por Integers
edadActual = miEdad.getText().toString();
EdadActualFinal = Integer.parseInt(edadActual);

edadInicial = miEdadInicial.getText().toString();
edadInicialFinal = Integer.parseInt(edadInicial);

mediaSemana = miMedia.getText().toString();
mediaSemanaFinal = Integer.parseInt(mediaSemana);

Resultado = MiResultado.getText().toString();
ResultadoFinal = Integer.parseInt(Resultado);

ResultadoFinal = ((EdadActualFinal - edadInicialFinal)* (mediaSemanaFinal * 48));

MiResultado.setText(ResultadoFinal);
}

希望它有所帮助!!