通过移动设备在 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 应用程序?

将Visual Studio 2012附加到在Android移动设备上运行的Unity游戏中,以进行调试

设备旋转,创建水平模式布局--Android studio

Android Studio需要澄清