通过手机点击Android Studio中的TextView会导致应用程序崩溃



我正在尝试在Android Studio上学习更多内容,我一直在学习一个教程,在该教程中,单击TextView将引导用户进入另一个布局。更具体地说,这个应用程序首先向用户显示他们是否想要登录。如果他们没有任何登录凭据,他们可以先注册。登录屏幕中的TextView询问用户是否要注册,并且应该是可点击的,这样就可以引导他们进入注册屏幕。

为此,我创建了一个变量寄存器,该寄存器指向布局中Textview的id。之后,我为它设置了一个监听器。setOnClickListener函数中的onClick函数有一个intent变量,并在startActivity函数中作为参数传递。

这是MainActivity.java:的代码

public class MainActivity extends AppCompatActivity{
private TextView register;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

this.register = findViewById(R.id.tv_main_register);
this.register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getBaseContext(), AddActivity.class);
startActivity(intent);
}
});
}

这是AddActivity.java类。该类是用户单击TextView后的预期目标。

public class AddActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
}
}

对于XML布局,到目前为止,我在这个项目中只使用了两种布局。第一个是activity_main.xml。我将只包含id为tv_main_register的TextView代码。

<TextView
android:id="@+id/tv_main_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="New here? Create an account"
android:textColor="@color/magenta_light"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_main_login" />

我还检查了第二布局的tools:context是否设置为.AddActivity

我希望我解释得很好。我很不确定为什么当我单击TextView时应用程序崩溃。

删除this

在意图MainActivity.this中添加上下文

private TextView register;

定义了寄存器,所以不需要像CCD_ 9那样简单地写入寄存器。

而意图需要写入上下文MainActivity.this

register = findViewById(R.id.tv_main_register);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = 
new Intent(MainActivity.this, AddActivity.class);
startActivity(intent);
}
});

最新更新