我无法通过单击按钮启动Activitiy

时间:2017-11-18 09:50:25

标签: java android

我正在尝试通过单击按钮启动Activitiy。如果用户单击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-Button时启动。

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" />

4 个答案:

答案 0 :(得分:1)

试试这个。

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 中的活动是否

答案 1 :(得分:1)

尝试实施点击列表器:

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添加到清单。

答案 2 :(得分:1)

将此添加到 AndroidManifest.xml

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

layouts.xml 上的clickOn并不总是一个好习惯,但它们运行正常。

答案 3 :(得分:0)

不是在xml中设置on click侦听器,而是在create上的活动中以编程方式设置它。

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

并从startGameEngine()的输入值中移除视图视图。

并确保在manifest.xml

中添加GameActivity