虽然没有显示错误,但按下按钮时应用程序崩溃

时间:2017-06-22 14:53:40

标签: java android android-activity

我正在尝试使用四种不同的活动构建应用。

在我的开始页面上,有4个按钮。当您单击按钮时,您应该被定向到相应的活动。

虽然我的代码没有语法错误,但是当我点击一个按钮时,我的应用程序总是崩溃。

有些人可以告诉我我的代码有什么问题吗?

我的主要活动

<maven.test.skip>true</maven.test.skip>

按钮应指向的其中一个类:

<maven.test.failure.ignore>true</maven.test.failure.ignore>

我的错误日志文件

package com.group6.travlhoe;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.NonNull;
import android.support.design.widget.BaseTransientBottomBar;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener {

Button btnTransport, btnUnterkunft, btnAllgemein, btnRechnung;

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

    btnTransport = (Button) findViewById(R.id.Transport);
    btnAllgemein = (Button) findViewById(R.id.Allgemein);
    btnUnterkunft = (Button) findViewById(R.id.Unterkunft);
    btnRechnung = (Button) findViewById(R.id.Rechnung);

    btnTransport.setOnClickListener(this);
    btnRechnung.setOnClickListener(this);
    btnAllgemein.setOnClickListener(this);
    btnUnterkunft.setOnClickListener(this);
}


@Override
public void onClick(View v) {
    if (v.getId() == R.id.Allgemein) {
        startActivity(new Intent(MainActivity.this, Allgemein.class));
    } else if (v.getId() == R.id.Transport) {
        startActivity(new Intent(MainActivity.this, Transport.class));
    } else if (v.getId() == R.id.Unterkunft) {
        startActivity(new Intent(MainActivity.this, Unterkunft.class));
    } else if (v.getId() == R.id.Rechnung) {
        startActivity(new Intent(MainActivity.this, Rechnung.class));
    }
    }
}

Android清单文件:

package com.group6.travlhoe;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;



public class Allgemein extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_allgemein);
    }
}

1 个答案:

答案 0 :(得分:0)

您缺少清单中的活动。创建活动时,也必须在此处添加。

我建议您阅读Android Application Fundamentals

 <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>

<activity
    android:name=".Allgemein"
    android:launchMode="singleTop"/>

此外,在您为活动提供的示例中,您不是overriding onCreate方法。确保您的所有活动都有此更改。

public class Allgemein extends AppCompatActivity {

    @Override //You are missing this.
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_allgemein);
    }
}