2017-02-19 41 views
1

如果涉及到Java,我是一個新手,所以我參加了我的大學的一個項目,該項目是爲了幫助大一新生而編寫的(如我:c)。那麼,我從打開一個新的活動,比如說主菜單出現問題。用按鈕打開新活動的問題

調試工作正常,應用程序啓動,但是當我點擊主菜單中的ImageButton「新遊戲」時,理論上應該在新的.java文件中打開另一個活動,該應用程序崩潰。我問我的導師(她也是一名學生),她說她不知道什麼是錯的,因爲一切都應該正常工作。

這裏是ImageButton的本身的main_activity.xml文件的一部分:

<ImageButton 
    android:layout_width="178dp" 
    android:layout_height="20dp" 
    android:id="@id/start" 
    android:src="@drawable/nowa" 
    android:layout_centerHorizontal="true" 
    android:adjustViewBounds="true" 
    android:cropToPadding="false" 
    android:layout_below="@+id/hlTopBar" 
    android:background="#00000000" 
    android:scaleType="fitXY" 
    android:layout_weight="0.02" 
    android:layout_margin="10dp" /> 

MainActivity.java

import static com.example.wojciech.myapplication.R.id.start; 
import static com.example.wojciech.myapplication.R.layout.activity_main; 
public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

ImageButton przyciskStart; 

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

    przyciskStart = (ImageButton) findViewById(start); 
    przyciskStart.setOnClickListener(this); 
} 

@Override 
public void onClick (View a){ 
    if(a.getId()== start) { 
     Intent intent = new Intent(getApplicationContext(), nowa_gra.class); 
     startActivity(intent); 
    } 

和nowa_gra.java

package com.example.wojciech.myapplication; 

import android.os.Bundle; 

import android.support.v7.app.AppCompatActivity; 

import static com.example.wojciech.myapplication.R.layout.nowa1; 

public class nowa_gra extends AppCompatActivity{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(nowa1); 
} 

} 

有一個nowa1 .xml文件在佈局中。

所以我的問題是,你們有什麼想法嗎?

我真的很感謝所有幫助你們可以提供:)

+0

你可以發佈你的錯誤? – mVck

+0

我沒有得到任何錯誤,應用程序只是「停止工作」。 –

+0

[link](http://pastebin.com/j9jBpiaE) 這是Android Studio中的Android監視器所說的:c –

回答

1

註冊在清單您的活動,如果沒有登記。

0

更改Mainactivity.java看起來像這樣

import static com.example.wojciech.myapplication.R.id.start; 
    import static com.example.wojciech.myapplication.R.layout.activity_main; 

    public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

ImageButton przyciskStart; 

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

addListenerOnImageButton(); 
} 

public void addListenerOnImageButton() { 

    final Context context = this; 

    przyciskStart = (ImageButton) findViewById(R.id.start); 

    przyciskStart.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Intent intent = new Intent(context, nowa_gra.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 
    } 
} 

而且登記比如你的Android Manifiest.xml文件中的新活動;

<activity 
     android:name=".nowa_gra" 
     android:label="nowa_gra" 
     android:screenOrientation="portrait" /> 
-1
在XML文件中replece

android:id="@id/start"android:id="@+id/start"資源將正常工作

+0

儘管此更改可能是必需的,但它不修復該異常。 –