通过移动设备在 Android Studio 中单击 TextView 会导致应用程序崩溃 [关闭]
Posted
技术标签:
【中文标题】通过移动设备在 Android Studio 中单击 TextView 会导致应用程序崩溃 [关闭]【英文标题】:Clicking TextView in Android Studio through mobile causes application to crash [closed] 【发布时间】:2021-10-18 15:41:02 【问题描述】:我正在尝试在 android Studio 上进行更多研究,并且我一直在关注点击 TextView 将引导用户进入另一个布局的教程。更具体地说,此应用程序首先显示用户是否要登录。如果他们没有任何登录凭据,则可以先注册。登录屏幕中的 TextView 会询问用户是否要注册,并且应该是可点击的,以便引导他们进入注册屏幕。
为此,我创建了一个变量寄存器,它指向布局中 Textview 的 id。之后,我为它设置了一个监听器。 setOnClickListener 函数中的 onClick 函数有一个意图变量,并在 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_
android:layout_
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 时应用程序会崩溃。
【问题讨论】:
你得到的崩溃日志是什么? 当您的应用崩溃时,您是否检查过 logcat 中的错误/崩溃? 我检查了logcat,它说找不到明确的活动类。 您是否在 AndroidManifest.xml 中声明了AddActivity
?
我按照你说的在清单中添加了它,它起作用了!非常感谢!
【参考方案1】:
删除this
。
在意图MainActivity.this
中添加上下文
private TextView register;
寄存器已定义,因此无需写为this.register
,只需写入寄存器即可。
虽然意图需要写上下文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);
);
【讨论】:
以上是关于通过移动设备在 Android Studio 中单击 TextView 会导致应用程序崩溃 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在移动设备上安装android studio创建的应用程序而无需将其连接到系统
如何在 Android Studio 中设置支持的设备类型?
如何在 Android-studio 或移动设备上运行 ionic-capacitor 应用程序?