2016-03-30 6 views
-1

スクロールアクティビティを作成しましたが、アプリをデバッグしてボタンをクリックしてアクティビティを開くと、エラーが発生します。基本的には、アプリ全体がクラッシュします。しかし、私のコードは以下の通りです。Android App - ボタンがアクティビティを開いていてもクラッシュしています

スクロール操作であり、空の動作ではないのですか?

news.java

package com.example.it5.foothillers; 

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; 

public class news extends AppCompatActivity { 

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

     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(); 
      } 
     }); 
    } 
} 

main_acitivity.java

package com.example.it5.foothillers; 

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener 
{ 

    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
      button = (Button)findViewById(R.id.button); 
      button.setOnClickListener(this); 

    } 

    private void buttonClick() { 
     startActivity(new Intent("it5.foothillers.news")); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.button: 
       buttonClick(); 
       break; 

     } 

    } 

} 

マニフェスト

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.it5.foothillers"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

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

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

     <activity android:name=".news"> 
      <intent-filter> 
       <action android:name="it5.foothillers.news" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 

エラー:

03-30 12:01:49.871 2122-2122/com.example.it5.foothillers E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.it5.foothillers, PID: 2122 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.it5.foothillers/com.example.it5.foothillers.news}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5254) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
    at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197) 
    at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:129) 
    at com.example.it5.foothillers.news.onCreate(news.java:17) 
    at android.app.Activity.performCreate(Activity.java:5990) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
    at android.app.ActivityThread.access$800(ActivityThread.java:151)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5254)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:372)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

答えて

0

This Activity already has an action bar supplied by the window decor.

あなたの例外メッセージは明らかにあなたがすでに活動のテーマの一部としてToolbarを持っていることを語っています。

setSupportActionBarに電話する場合は、styles.xmlファイルにこのようなテーマを設定する必要があります。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 

あなたはおそらくもちょうどこの2行

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

を削除し、

ActionBar toolbar = getSupportActionBar(); 
+0

ありがとうございます!それは本当に働いた!!!! – MartinNewAtCODE

-1

活動を開始する最も簡単な方法は、これに意図を変更です:

startActivity(new Intent(MainActivity.this, news.class)); 

スタックトレースを使用すると、別のアクションバーを追加しようとしている、あなたはすでにアプリケーションのが提供するものを持っていた示しましたテーマ。

だから、あなたがそのような、アクションバーを使用しないようにマニフェストにyoutは活動宣言でテーマを変更することができます。

<activity android:name=".news" 
      android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="it5.foothillers.news" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

それとも自分のアクティビティコードとあなたのactivity_news.xmlからツールバーを削除する(なぜならあなたは)後でそれを使用していない:

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

     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(); 
      } 
     }); 
+0

で置き換えることができ、私は同じエラーを取得しています、が、あなたの答えをいただき、ありがとうございます。 – MartinNewAtCODE

0

Intent intent=new Intent(MainActivity.this,news.class); startActivity(intent);

Mainifest.xml

を0

<activity android:name="com.example.it5.foothillers.news" ></activity>

+0

このエラーが発生しました:残念ながら、Foothillersアプリの動作が停止しました。上記を参照して、私は自分のコードを更新しました。 – MartinNewAtCODE

+0

私もマニフェストを変更しましたが、動作しませんでした。 – MartinNewAtCODE

+0

を削除しようとしました – LOW

関連する問題