У меня только вопрос об этом исключении. Я уже исправил код, но я не знал, почему я не мог использовать свой оригинальный способ.Почему я не могу вызвать startActivity для операции, созданной вручную?
public class Login extends Activity
{
EditText account, password;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
account = (EditText) this.findViewById(R.id.account);
password = (EditText) this.findViewById(R.id.password);
Button_Listener listener = new Button_Listener();
Button login = (Button) this.findViewById(R.id.login);
login.setOnClickListener(listener);
Button reset = (Button) this.findViewById(R.id.reset);
reset.setOnClickListener(listener);
}
class Button_Listener implements View.OnClickListener
{
Login l = new Login();
public void onClick(View v)
{
switch(v.getId())
{
case R.id.login:
if(account.getText().toString().equals("kenny"))
{
if(password.getText().toString().equals("12345"))
{
Toast.makeText(Login.this,"Welcome",Toast.LENGTH_SHORT).show();
Intent go = new Intent();
go.setClass(Login.this,MainMenu.class);
l.startActivity(go); // NullPointerException here
Login.this.overridePendingTransition(R.anim.enter,R.anim.exit);
}
else
Toast.makeText(Login.this, "Account or Password is incorrect", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Login.this, "Account or Password is incorrect", Toast.LENGTH_SHORT).show();
}
break;
case R.id.reset:
account.setText("");
password.setText("");
break;
}
}
}
}
Почему я получаю NullPointerException
на комментировал линии? Когда я использовал Login.this
, я не получил это исключение.
В дополнение к этому вопросу, почему я не получил никакой ценности, если я делаю String name = account.getText().toString();
для слушателя?
Вы никогда ** никогда не хотите вручную создавать события –
@TimCastelijns - похоже, что слушатель кнопки является внутренним классом. Невозможно использовать 'Login.this.startActivity'? –
@ cricket_007 Предпочтительным способом было бы следующее. 'V.getContext(). StartActivity (перейти)'. Не знаю, почему это еще не было предложено. – d0nut