проверить значение состояния usign Log.e (); код работает только тогда, когда значение статуса является успешным, тогда что, если значение статуса не является успешным?
String status = response.body().getStatus();
if(status.equals("success"))
{
progressDialog.dismiss();
Toast.makeText(LoginActivity.this, "Login successfully", Toast.LENGTH_SHORT).show();
Intent mainIntent = new Intent(LoginActivity.this, DeviceControlActivity.class);
startActivity(mainIntent);
finish();
}
Сделайте еще частью для этого и сделайте соответствующий массаж. [ 112]
Я надеюсь, что вы получите точку
Ну, регулярная реализация действительно проверяет стопку управления, чтобы гарантировать, что все родители видимы. Единственным путем я знаю для уклонения, это должно обмануть с отражением и попросить GetState(2)
, но это является хрупким:
// dodgy; not recommended
Panel query;
Form form = new Form
{
Controls = {
new Panel {
Visible = false,
Controls = {
(query = new Panel {Visible = true})
}
}
}
};
form.Show();
// this is the dodgy bit...
bool visible = (bool)typeof(Control)
.GetMethod("GetState", BindingFlags.Instance | BindingFlags.NonPublic)
.Invoke(query, new object[] { 2 });
Опция, которая не полагается на отражение, состояла бы в том, чтобы рекурсивно вызвать через родителей иерархии управления, ища один с Видимым набором ко лжи.
Править: См. комментарии для значения кода.
var frm2 = new Form {Text = "Form2"}; var lbl = new Label {Visible = true}; frm2.Controls.Add(lbl); frm2.Show(); var frm1 = new Form {Text = "Form1"}; var lblVis = new Label { Text = lbl.Visible.ToString(), Left = 10, Top = 10}; lbl.VisibleChanged += (sender, args) => MessageBox.Show("Label Visible changed"); var btnShow = new Button {Text = "Show", Left = 10, Top = lblVis.Bottom + 10}; btnShow.Click += (sender, args) => { frm2.Visible = true; lblVis.Text = lbl.Visible.ToString(); }; var btnHide = new Button {Text = "Hide", Left = 10, Top = btnShow.Bottom + 10}; btnHide.Click += (sender, args) => { frm2.Visible = false; lblVis.Text = lbl.Visible.ToString(); }; frm1.Controls.AddRange(new Control[] {lblVis, btnShow, btnHide}); Application.Run(frm1);