java - Activity 无法转移到 onclicklistener
问题描述
我制作了一个创建登录页面的最简单的程序,但是,我无法OnClickListener
向我的按钮添加一个,我不知道为什么。我对 Android Studio 真的很陌生,不知道该怎么做。当我将鼠标悬停在它说的错误上时"In View cannot be applied"
。
我已经尝试了在互联网上找到的这些代码,但错误并没有消失,并且机器说@Override
不会覆盖上面的内容。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_teacher_in_j);
regist1 = (Button)findViewById(R.id.btnregister1);
regist1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent teachtoregist = new Intent(TeacherInJ.this, TeacherRegisterInJ.class);
startActivity(teachtoregist);
}
});
etUsername = (EditText) findViewById(R.id.editText2);
etPassword = (EditText) findViewById(R.id.editText3);
bLogin = (Button) findViewById(R.id.btnlogin);
bLogin.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnlogin:
//Start activity one
break;
解决方案
当我将鼠标悬停在错误上时,它显示“无法应用在视图中”。
我已经尝试了在 Internet 上找到的这些代码,但错误并没有消失,并且机器说 @override 不会覆盖上面的内容。
上述两个问题都是因为你没有在implements
你的Activity中添加关键字。您需要添加它,以便 Activity 可以被按钮视为OnClickListener
界面。
您需要执行以下操作(请参阅代码中的注释):
// see below the implements View.OnClickListener line that
// need to be added so the Activitiy can be regarded as the listener.
public class TeacherInJ extends AppCompatActivity implements View.OnClickListener {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_teacher_in_j);
...
// now you can use this as the listener. It's because you have
// set the current Activity class as the View.OnClickListener
// this is refer to current Activity object.
bLogin.setOnClickListener(this);
}
// Now you can add the @Override to the onClick method from
// the View.OnClickListener.
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnlogin:
//Start activity one
break;
}
}
}