gpt4 book ai didi

java - 每次我打开商店 Activity 都会崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:32 24 4
gpt4 key购买 nike

这是我在商店 Activity 类中的代码,每次运行它时,它都会崩溃,我不知道为什么。我只是 Android studio 的初学者,所以我只是尝试制作一个应用程序。

import android.app.Activity;
import andrstrong textoid.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;

import static com.example.dazx15.spaceevasion.R.*;

public class ShopActivity extends Activity {
final Button buy1 = (Button) findViewById(id.buy_1);

private int best = 0;
private int coin=0;


@Override
protected void onCreate(Bundle savedInstanceState) {

buy1.setVisibility(View.INVISIBLE);
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(layout.activity_shop);



}
//when you click the buy button
public void buySpaceship()
{
coin=GamePanel.coin;
if(coin<=500)
{
coin=coin - 500;
buy1.setText("OWNED");
buy1.setClickable(false);

}
}
public void update() {
best = GamePanel.best;
GamePanel.coin=coin;

//if the score is 500 above
if (best <= 500) {
buy1.setVisibility(View.VISIBLE);

}
}
}

最佳答案

更改此行:

final Button buy1 = (Button) findViewById(id.buy_1);

final Button buy1;

您的 onCreate 应该如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(layout.activity_shop);
buy1 = (Button)findViewById(id.buy_1);
buy1.setVisibility(View.INVISIBLE);
}

您的应用程序因这一行而崩溃:

final Button buy1 = (Button) findViewById(id.buy_1);

您想初始化按钮吗?但是,该语句在创建 Activity 的新实例时执行(我的意思是在调用构造函数时,而不是调用 onCreate 时)。那时 Activity 中的观点还没有布置出来!这会导致 findViewById 找不到 View ,因此返回 null

现在,在 onCreate 中,您尝试将 buy_1 的可见性设置为不可见。但是,由于 buy_1 为 null,因此无需设置任何内容!因此,会引发空指针异常并且您的应用程序崩溃。

关于java - 每次我打开商店 Activity 都会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39814583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com