打开新活动按钮的问题

时间:2017-02-19 16:46:21

标签: java android

我是一个新手,如果涉及到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文件。

所以我的问题是,你们有什么想法吗?

我非常感谢你们提供的任何帮助:)

3 个答案:

答案 0 :(得分:1)

如果未注册,请在清单中注册您的活动。

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

答案 2 :(得分:-1)

在您的xml文件中,请android:id="@id/start"android:id="@+id/start" res充值正常