2017-11-18 87 views
-1

我試圖通過單擊按鈕啓動活動。如果用戶點擊MenuActivity中的PLAY按鈕,GameActivity應該啓動。但它不起作用。我無法通過單擊按鈕啓動活動

public class MenuActivity extends AppCompatActivity { 

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

public void startGameEngine(View view) { 
    Intent myintent = new Intent(this, GameActivity.class); 
    startActivity(myintent); 
} 

這裏是一個應該開始GameActivity類時在PLAY-按鈕,用戶點擊。

public class GameActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_game); 
    Intent intent = getIntent(); 
} 

這裏是menu.xml文件文件,其中包括按鈕

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/menubackground_color" 
    tools:context="com.example.vincenzoauricchio.example.MenuActivity"> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="381dp" 
    android:layout_height="67dp" 
    android:layout_marginBottom="440dp" 
    android:layout_marginTop="88dp" 
    android:fontFamily="@font/vt323" 
    android:text="@string/logo2" 
    android:textAlignment="center" 
    android:textAllCaps="false" 
    android:textColor="@android:color/black" 
    android:textSize="36sp" 
    android:textStyle="bold|italic" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintHorizontal_bias="0.666" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    app:layout_constraintVertical_bias="0.0" /> 

<Button 
    android:id="@+id/btnPlay" 
    android:layout_width="100dp" 
    android:layout_height="60dp" 
    android:layout_marginBottom="265dp" 
    android:layout_marginTop="87dp" 
    android:fontFamily="@font/vt323" 
    android:onClick="startGameEngine" 
    android:text="@string/button_play" 
    android:textSize="30sp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView3" 
    app:layout_constraintVertical_bias="0.0" /> 

+2

你這是什麼意思*但是,不*工作,儘量準確地提錯誤/問題,您可以檢查https://開頭計算器.com/help /如何在發帖之前提問 –

+0

您是否在Manifest中添加了GameActivity? – DavidH

+0

試試我的答案.. –

回答

0

試試這個。

public class MenuActivity extends AppCompatActivity implements View.OnClickListener 
{ 

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

Button btnPlay= (Button) findViewById(R.id.btnPlay); 
    btnPlay.setOnClickListener(this); 

    } 


    @Override 
    public void onClick(View view) { 

     switch (view.getId()) 
     { 
      case R.id.btnPlay: 
       Intent myintent = new Intent(MenuActivity.this, GameActivity.class); 
       startActivity(myintent); 
      break; 
     } 
    } 
} 

檢查活動在Manifestfile.xml或不

+0

刪除此行'android:onClick =「startGameEngine」'..我希望這可以幫助你 –

0

嘗試執行上點擊聽者:

public class MenuActivity extends AppCompatActivity implements View.OnClickListener 

嘗試下面的代碼片段:

Button btnPlay = (Button) findViewById(R.id.btnPlay); 
btnPlay.setOnClickListener(MainActivity.this); 

@Override 
public void onClick(View view) 
    { 
    if(view == btnPlay) 
    { 
      Intent intent = new Intent(MenuActivity.this, GameActivity.class); 
      startActivity(intent); 
    } 
    } 

將您的GameActivity添加到清單。

0

添加到您的AndroidManifest.xml

<activity android:name=".GameActivity"/> 

在layouts.xml的clickOn並不總是一個很好的做法,但他們很好地工作。

1

不是在xml中設置您的點擊偵聽器,而是在創建活動中以編程方式設置它。

btnPlay.setOnClickListener(new onClickListener{ 
    void onCLick(){ 
      startGameEngine(); 
    }}); 

並從startGameEngine()的輸入值中刪除查看視圖。

,並確保你在manifest.xml添加GameActivity