【问题标题】:I can't open my second activity in android studio我无法在 android studio 中打开我的第二个活动
【发布时间】:2016-04-04 06:34:46
【问题描述】:

我正在尝试创建一个包含两个活动的小应用程序,但是当我进行第二个活动时,我的应用程序已停止。 代码没有错误,但是当我从我的应用程序开始我的第二个活动时,它崩溃了。

这是我的详细活动代码,当我从虚拟设备打开此活动时,它已停止。

   package com.example.sj.dgapps3;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DetailActivity extends AppCompatActivity {
    protected String name ;
    protected int pos;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        name = getIntent().getStringExtra(MainActivity.Name);
        TextView textView = (TextView) findViewById(R.id.name);
        textView.setText(name);

        pos = getIntent().getIntExtra(MainActivity.Position, 0);
        TextView textView1 = (TextView) findViewById(R.id.position);
        textView1.setText(pos);


        int qual = getIntent().getIntExtra(MainActivity.Qualification, 0);
        TextView textView2 = (TextView) findViewById(R.id.qualification1);
        textView1.setText(qual);

        int exp = getIntent().getIntExtra(MainActivity.Expertise, 0);
        TextView textView3 = (TextView) findViewById(R.id.expertise1);
        textView1.setText(exp);

        int con = getIntent().getIntExtra(MainActivity.Contact, 0);
        TextView textView4 = (TextView) findViewById(R.id.contact1);
        textView1.setText(con);

        /*String pic = getIntent().getStringExtra(MainActivity.Pic);
        ImageView imageView = (ImageView) findViewById(R.id.empPic);
        imageView.setImageResource(imageView);*/

        /*ImageView imageView = (ImageView) findViewById(R.id.empPic);
        int res = getResources().getIdentifier(teamDetails.getPic(), "drawable", context.getPackageName());
        imageView.setImageResource(res);*/




        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

}

这是我的详细活动的 XML 代码。

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/name"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/imageView"
        android:layout_marginTop="45dp"
        android:layout_marginLeft="40dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/position"
        android:layout_below="@+id/name"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginLeft="60dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/qualification"
        android:text="Qualification:"
        android:layout_below="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="43dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/expertise"
        android:text="Expertise:"
        android:layout_below="@+id/qualification"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/contact"
        android:text="Contact:"
        android:layout_below="@+id/expertise"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/qualification1"
        android:layout_alignBottom="@+id/qualification"
        android:layout_toRightOf="@+id/qualification"
        android:layout_marginLeft="50dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/expertise1"
        android:layout_alignBottom="@+id/expertise"
        android:layout_alignLeft="@+id/qualification1"
        android:layout_alignStart="@+id/qualification1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/contact1"
        android:layout_alignBottom="@+id/contact"
        android:layout_alignLeft="@+id/qualification1"
        android:layout_alignStart="@+id/qualification1" />

</RelativeLayout>

【问题讨论】:

  • java代码在哪里??
  • 发布您的第二个活动代码
  • 在问题部分添加 xml 和代码
  • 详细活动代码?
  • 请在此处复制并粘贴文本。不要截图那个。另外,您已经切断了错误的必要信息。另外,Android Studio 可以打开你的 Activity 就好了,是设备打不开。

标签: android android-layout listview android-studio


【解决方案1】:

看起来在第 30 行的 DetailActivity 中,您正试图像这样设置 TextView 的文本:

textView.setText(0)

将整数传递给setText 时,它指的是字符串资源。在这种情况下,0 不是有效的字符串 id。

考虑传递一个字符串 (textView.setText("0")) 或在 strings.xml 中创建该字符串资源并在代码中引用它,如下所示:textView.setText(R.string.myString)

【讨论】:

  • String.valueOf(number) 值得一提,以防使用变量设置文本
  • @siger 我也添加了我的 java 和 XML 代码,请看看你是否能找到任何东西。
【解决方案2】:

问题是您将 int (qual,exp,con) 值分配给 setText()。

将 int 转换为字符串,然后设置为 TexView 文本。

int qual = getIntent().getIntExtra(MainActivity.Qualification, 0);
TextView textView2 = (TextView) findViewById(R.id.qualification1);
textView1.setText(String.valueOf(qual));

int exp = getIntent().getIntExtra(MainActivity.Expertise, 0);
TextView textView3 = (TextView) findViewById(R.id.expertise1);
textView1.setText(String.valueOf(exp));

int con = getIntent().getIntExtra(MainActivity.Contact, 0);
TextView textView4 = (TextView) findViewById(R.id.contact1);
textView1.setText(String.valueOf(con));

【讨论】:

    【解决方案3】:

    您检查清单了吗? 您需要在那里添加您的活动。

    【讨论】:

    • 这不是错误信息。 ResourceNotFound 与该错误不同
    • 至少你可以提供一些代码......这样我们就更容易帮助你了。它认为您应该修改您的 DetailActivity.java 第 30 行。这是目前我能给您的唯一帮助
    • 这个错误实际上包含了所有需要的细节。另一个答案已经涵盖了
    • 蓝色的那一行 (logcat) ,是不是表示错误在哪里? (我是安卓开发的新手)
    • 是的,超链接将转到该活动的第 30 行的代码,然后“原因”原因是最重要的,然后蓝线周围的几行也很重要,因为它说正在运行什么代码。可悲的是 StackOverflow 并没有很好地教授调试 :)
    猜你喜欢
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多