【问题标题】:Wanting to throw an intent to open a new activity but continually crashes想要打开一个新活动的意图但不断崩溃
【发布时间】:2018-07-31 12:37:59
【问题描述】:

这里没有什么花哨或复杂的东西。当我按下 textview 时,我只是想打开一个新的空白活动。从项目完成的文件来看,我似乎已经按照我的意愿去做了。但是,每次我单击 textview 以启动打开其他活动的意图时,它都会崩溃。我似乎也找不到原因。在一个单独的应用程序中,我通过一个按钮从编辑文本字段发送一个文本字符串,似乎工作正常,并且有一些其他更详细的代码来执行它,所以我不完全确定错误在哪里出现.

MainActivity.java

package com.example.android.miwok;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the content of the activity to use the activity_main.xml layout file
    setContentView(R.layout.activity_main);
 }

public void openNumbersList(View view) {
    Intent i = new Intent(this, NumbersActivity.class);
    startActivity(i);
 }
}

NumbersActivity.java

package com.example.android.miwok;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class NumbersActivity extends AppCompatActivity {

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

 }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tan_background"
android:orientation="vertical"
tools:context="com.example.android.miwok.MainActivity">

<TextView
    android:id="@+id/numbers"
    style="@style/CategoryStyle"
    android:background="@color/category_numbers"
    android:onClick="openNumbersList"
    android:text="@string/category_numbers" />

<TextView
    android:id="@+id/family"
    style="@style/CategoryStyle"
    android:background="@color/category_family"
    android:text="@string/category_family" />

<TextView
    android:id="@+id/colors"
    style="@style/CategoryStyle"
    android:background="@color/category_colors"
    android:text="@string/category_colors" />

<TextView
    android:id="@+id/phrases"
    style="@style/CategoryStyle"
    android:background="@color/category_phrases"
    android:text="@string/category_phrases" />

</LinearLayout>

在 logcat 中有一个错误显示应用​​程序何时崩溃:

02-20 20:10:26.762 7582-7582/com.example.android.miwok E/AndroidRuntime: 致命异常: main 进程:com.example.android.miwok,PID:7582 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.android.miwok/com.example.android.miwok.NumbersActivity}:android.view.InflateException:二进制 XML 文件行 #0:二进制 XML 文件行 #0 : 膨胀类 TextView 时出错

【问题讨论】:

  • 发布完整的堆栈跟踪(格式化为代码块)和activity_numbers.xml 文件
  • android:height android:width 添加到您的所有文本视图中
  • 请发布文件内容:activity_numbers.xml
  • 意图不是问题。下一个活动中的 XML 是。特别是 TextViews
  • 从 TextViews 中移除 style 属性,让我们知道结果

标签: java android android-intent


【解决方案1】:

在您的文本视图的 xml 布局中添加 id 编号

android:clickable="true"

仅当此属性设置为 true 时,才会调用文本视图的 onclick 处理程序

并且还为所有文本视图添加高度和宽度.. 像这样

android:height="wrap_content"
android:width="wrap_content"

这一定是导致应用崩溃的原因

有一篇关于如何将点击侦听器设置为 textviews here 的帖子。

【讨论】:

  • 没有这个设置不会导致点击时崩溃
  • 我确实在验证修复之前添加了这个,看看它是否正确或导致崩溃,但事实并非如此。我刚刚添加了两个可单击然后可聚焦的 android 属性(在测试后可聚焦 just 可单击并且它仍然崩溃)。在修复我的 xml 并验证它是否有效后,我删除了这些,它仍然可以正常工作。
【解决方案2】:

“Error inflating class TextView”表示你在下一个活动中的 xml 有问题。尝试从第二个活动的布局中删除所有视图,仔细检查布局,然后尝试。如果这只是您要确认的意图启动,这应该可行。

【讨论】:

  • 非常好,先生,正如您所说,我在新活动中的 xml 不正确。我有 android:textSize="?android:textAppearanceLarge"
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多