Как я могу решить эту проблему с GenyMotion? - PullRequest
0 голосов
/ 08 ноября 2019

Мне нужно создать приложение, которое отображает число при каждом нажатии кнопки, я приложил все усилия, и все же эмулятор выглядит как «Ваше приложение остановилось». Я искал решение в Интернете, но я не могу понять, в чем проблема. Кто-нибудь может мне помочь? Я застрял здесь на несколько часов.

Заранее спасибо!

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 голосов
/ 08 ноября 2019

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;
        }
    });
}
}
0 голосов
/ 08 ноября 2019

Вы пытаетесь инициализировать виджеты перед установкой / привязкой макета к действию. Это создает 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); часть перед инициализацией виджетов.

setContentView(R.layout.activity_main);   // <<====== this part
txtLaboratorio = findViewById(R.id.TVLaboratorio);
btnSumar = findViewById(R.id.btnSumar);
txtResultado = findViewById(R.id.TVResultado);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...