#android
#Android
Вопрос:
Я делаю базовую демонстрацию Android, связанную с входом в систему, обновлением пользователя
Я использовал идентификатор пользователя со страницы входа, чтобы загрузить информацию пользователя на страницу обновления
username = (EditText) findViewById(R.id.txtUsername);
age = (EditText) findViewById(R.id.txtAge);
weight = (EditText) findViewById(R.id.txtWeight);
height = (EditText) findViewById(R.id.txtHeight);
username.setText(db_username);
age.setText(db_age);
weight.setText(db_weight);
height.setText(db_height);
и кнопка обновления
update.setOnClickListener(new View.OnClickListener() {
int sweight = Integer.parseInt(weight.getText().toString());
double sheight = Double.parseDouble(height.getText().toString());
int sage = Integer.parseInt(age.getText().toString());
@Override
public void onClick(View v) {
if (weight.equals("")) {
Toast.makeText(getApplicationContext(), "Please input weight!",
Toast.LENGTH_LONG).show();
return;
}else if(height.equals("")){
Toast.makeText(getApplicationContext(), "Please input height!",
Toast.LENGTH_LONG).show();
return;
}else if(age.equals("")){
Toast.makeText(getApplicationContext(), "Please input age!",
Toast.LENGTH_LONG).show();
return;
}else{
dbHandler.updateUser(sid,sweight,sheight,sage);
Toast.makeText(getApplicationContext(),
"User's information updated! ", Toast.LENGTH_LONG)
.show();
Toast.makeText(getApplicationContext(),
sid sweight sheight sage " and test", Toast.LENGTH_LONG)
.show();
Intent i = new Intent(UserUpdate.this, MainActivity.class);
startActivity(i);
finish();
}
}
});
Для экзамена: вес: 70, рост: 1,65, возраст: 21
когда я изменил его на: вес: 50, рост: 1,65, возраст: 21
2-й тост показывает мне этот вес: 70, но не 50
Комментарии:
1. Вероятно, вам также следует использовать
setError
в EditTexts вместо поджаривания
Ответ №1:
Вам нужно переместить эти три верхние строки внутри метода click, а не объявлять их как переменные-члены анонимного класса.
int sweight = Integer.parseInt(weight.getText().toString());
double sheight = Double.parseDouble(height.getText().toString());
int sage = Integer.parseInt(age.getText().toString());
@Override
public void onClick(View v) {
// Move them here
Ответ №2:
поместите это :
int sweight = Integer.parseInt(weight.getText().toString());
double sheight = Double.parseDouble(height.getText().toString());
int sage = Integer.parseInt(age.getText().toString());
в методе onclick , перед -> if (weight.equals(«»))