And*_*ewb 13 android android-intent
我收到以下错误:
The constructor Intent(new View.OnClickListener(){},
Class<DrinksTwitter>) is undefined
Run Code Online (Sandbox Code Playgroud)
在以下代码段中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the EditText and Button References
etUsername = (EditText)findViewById(R.id.username);
etPassword = (EditText)findViewById(R.id.password);
btnLogin = (Button)findViewById(R.id.login_button);
btnSignUp = (Button)findViewById(R.id.signup_button);
lblResult = (TextView)findViewById(R.id.result);
// Set Click Listener
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Check Login
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if(username.equals("test") && password.equals("test")){
final Intent i = new Intent(this, DrinksTwitter.class); //error on this line
startActivity(i);
// lblResult.setText("Login successful.");
} else {
lblResult.setText("Invalid username or password.");
}
}
});
final Intent k = new Intent(Screen2.this, SignUp.class);
btnSignUp.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(k);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我在线上做错了什么:
final Intent i = new Intent(this, DrinksTwitter.class);
Run Code Online (Sandbox Code Playgroud)
Fal*_*rri 33
更改
final Intent i = new Intent(this, DrinksTwitter.class)
Run Code Online (Sandbox Code Playgroud)
至
final Intent i = new Intent(Screen2.this, DrinksTwitter.class)
Run Code Online (Sandbox Code Playgroud)
小智 26
只需几行来解释为什么"这个"不起作用的原因:
final Intent i = new Intent(this,DrinksTwitter.class)
意图是在另一个类中创建的,这里是一个匿名内部类OnClickListener.因此,"this"不会按预期引用Activity(或Context)的实例,而是引用匿名内部类OnClickListener的实例.
正如@Falmarri在他的回答而不是"this"中提到的那样,你需要使用你的Activity名称后跟".this"来指向正确的实例:
最终意图i =新意图(Screen2.this,DrinksTwitter.class)
| 归档时间: |
|
| 查看次数: |
22496 次 |
| 最近记录: |