2015-10-30 4 views
-1

У меня есть небольшая программа. U нужно вставить 3 значения в EditText и нажать кнопку с методом OnClick. Но когда я нажимаю кнопку (нужно добавить некоторые переменные), мое приложение закрывается.присвоить значение переменной кнопке android

Я не знаю, является ли проблема некоторой переменной, но я читал и не могу ее исправить.

Thats мой полный класс:

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); 
+0

Пожалуйста, сообщите об ошибке Logcat @Aris – Naveen

+0

, вы получаете какую-либо ошибку? опубликовать журнал – Meenaxi

+0

Вы хотите преобразовать строку в целое? – Erminesoft

ответ

0

Но здесь ошибка

Не удалось найти метод calculaP (View) в классе деятельности com.example.dam.semenapp.Preguntas for onClick handler on view class android.support.v7.widget.AppCompatButton с id 'cum' 10-30 Android не может найти вашу функцию.

+0

Да, я вижу проблему, но не знаю, почему это происходит. Мой код плохой? –

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); 
} 

Надеется, что это помогает !!

+0

Спасибо, но близко тоже. «неустранимые: Главный 10-31 14: 24: 55,041 16294-16294/com.example.dam.semenapp Е/AndroidRuntime: Процесс: com.example.dam.semenapp, ПИД: 16294 10-31 14: 24: 55.041 16294-16294/com.example.dam.semenapp E/AndroidRuntime: java.lang.IllegalStateException: Не удалось найти метод calculaP (View) в классе активности com.example.dam.semenapp.Preguntas for onClick обработчик в классе вида android.support.v7.widget.AppCompatButton с id 'myButton' " –

+0

OK..устройте кнопку define и определите' onClickListener() 'на нем..и затем внутри' 'onClick()' вызовите ваш метод. .. код добавил..чел и посмотрим, если это сработает .. – Droidwala

+0

определить где? я не понимаю. Почему я должен определить кнопку, если y вызывает мой метод на кнопке? –

Смежные вопросы