有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java出现了打开新活动的按钮问题

对于Java,我是一个新手,所以我参加了大学里的一个项目,该项目是为了帮助大一新生进行编码(比如我:c)。嗯,我在从主菜单打开一个新活动时遇到了一个问题

调试工作正常,应用程序启动,但当我点击主菜单中的ImageButton“New game”(新游戏)时,理论上应该会在新窗口中打开另一个活动。应用程序崩溃的java文件。我问我的导师(她也是一名学生),她说她不知道出了什么问题,因为一切都应该很好

这是主要活动的一部分。ImageButton本身的xml文件:

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

主要活动。爪哇

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

还有诺瓦格拉。爪哇

package com.example.wojciech.myapplication;

import 安卓.os.Bundle;

import 安卓.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);
}

}

现在有一个问题。布局中的xml文件

所以我的问题是,你们知道怎么了吗

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


共 (3) 个答案

  1. # 1 楼答案

    在xml文件中,repleceandroid:id="@id/start"android:id="@+id/start"res将正常工作

  2. # 2 楼答案

    改变你的主要活动。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" />
    
  3. # 3 楼答案

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