【问题标题】:assign variable value with button android使用按钮 android 分配变量值
【发布时间】:2015-10-30 11:52:19
【问题描述】:

我有一个小程序。你必须在 EditText 上插入 3 个值,并有一个带有方法 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);

【问题讨论】:

  • 请发布您的 Logcat 错误 @Aris
  • 您是否遇到任何错误?发布日志
  • 你想把字符串转换成整数吗?
  • @ErmineSoft 用这个我将字符串转换为整数,因为你写的信息是数字
  • 你的 oncreate() 方法在哪里?

标签: android onclick add


【解决方案1】:

但这里有一个错误

在活动类中找不到方法calculaP(View) com.example.dam.semenapp.Preguntas 用于视图类上的 onClick 处理程序 id 为“cum”的 android.support.v7.widget.AppCompatButton 10-30 Android 找不到你的函数。

【讨论】:

  • 是的,我看到了问题,但不知道为什么会发生。我的代码不好?
【解决方案2】:

只需尝试将下面的行从 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);
}

希望对你有帮助!!

【讨论】:

  • 谢谢,但也很接近。 “致命异常:主要 10-31 14:24:55.041 16294-16294/com.example.dam.semenapp E/AndroidRuntime:进程:com.example.dam.semenapp,PID:16294 10-31 14:24:55.041 16294 -16294/com.example.dam.semenapp E/AndroidRuntime: java.lang.IllegalStateException: 在视图类 android 上的 onClick 处理程序的活动类 com.example.dam.semenapp.Preguntas 中找不到方法 calculaP(View)。 support.v7.widget.AppCompatButton 与 id 'myButton' "
  • OK..只需定义按钮并在其上定义onClickListener()..然后在其内部onClick()调用您的方法...添加代码..检查它是否有效..跨度>
  • 定义在哪里?我不明白。如果你在按钮上调用我的方法,为什么我必须定义按钮?
  • 我不确定..我不使用您使用 IDE 在按钮上编写 onClick() 方法的方式..通常我直接在上面的 Activity 类中定义它..看看是否有帮助!!
  • 我终于明白了!,第一个问题是这 2 行:Resultado = MiResultado.getText().toString(); ResultadoFinal = Integer.parseInt(Resultado);并且要转换最后一个字符串 (MiResultado) 只需发布这个 ("" +) 例如: MiResultado.setText("" + ResultadoFinal);谢谢大家:)
猜你喜欢
  • 1970-01-01
  • 2017-10-29
  • 2014-01-19
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2014-09-14
  • 2016-11-21
  • 1970-01-01
相关资源
最近更新 更多