如何使用GenyMotion解决此问题?

时间:2019-11-08 00:03:57

标签: java xml android-studio

我需要创建一个在每次单击按钮时显示一个数字的应用程序,我已尽力而为,但模拟器却像“您的应用程序已停止”一样。我一直在寻找Internet中的解决方案,但我不知道问题出在哪里。有人可以帮我吗?我已经在这里呆了几个小时。

谢谢!

public class MainActivity extends AppCompatActivity {
private Button btnSumar;
private TextView txtResultado;
private TextView txtLaboratorio;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    txtLaboratorio = findViewById(R.id.TVLaboratorio);
    btnSumar= findViewById(R.id.btnSumar);
    txtResultado= findViewById(R.id.TVResultado);
    setContentView(R.layout.activity_main);
    btnSumar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             int suma = Integer.valueOf(txtResultado.getText().toString());
            suma+=2;
        }
    });
}

}

2 个答案:

答案 0 :(得分:0)

您正在尝试在设置/绑定活动布局之前初始化窗口小部件。这样会产生15.9.17

NullPointerException

在初始化小部件之前添加txtLaboratorio = findViewById(R.id.TVLaboratorio); btnSumar = findViewById(R.id.btnSumar); txtResultado = findViewById(R.id.TVResultado); setContentView(R.layout.activity_main); // <<====== wrong 部分。

setContentView(R.layout.activity_main);

答案 1 :(得分:0)

You are not initiate controls before initialize layout(view).因此,setContentView(R.layout.activity_main)出现了问题,您必须在super.onCreate(savedInstanceState);之后定义视图瞬间

尝试以下代码:

public class MainActivity extends AppCompatActivity {
private Button btnSumar;
private TextView txtResultado;
private TextView txtLaboratorio;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txtLaboratorio = findViewById(R.id.TVLaboratorio);
    btnSumar= findViewById(R.id.btnSumar);
    txtResultado= findViewById(R.id.TVResultado);
    btnSumar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             int suma = Integer.valueOf(txtResultado.getText().toString());
            suma+=2;
        }
    });
}
}