android应用程序在更改活动时崩溃

kx7yvsdv  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(380)

这个问题在这里已经有答案了

什么是nullpointerexception,如何修复它(12个答案)
5个月前关门了。
android开发新手,使用android studio。我的应用程序的第一个活动是一个简单的主菜单,带有“开始”和“退出”按钮。当我按下“开始”按钮时,应用程序会带我进入第二个名为“遭遇者屏幕”的活动。相反,应用程序崩溃了。在此处输入图像描述。我试图显示player对象的当前运行状况,player类。显然问题出在“textview healthtext=findviewbyid(r.id.healthtext);”上。这是错误:“尝试对空对象引用调用虚拟方法'android.content.pm.applicationinfo android.content.context.getapplicationinfo()'”

public class EncounterScreen extends AppCompatActivity implements View.OnClickListener {
  Player player=new Player();
  TextView healthText=findViewById(R.id.healthText); 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_encounter_screen);
    Player player=new Player();
    TextView healthText=findViewById(R.id.healthText);
    healthText.setText("Health "+player.getCurrentHP());

    Button attackButton=findViewById(R.id.attackBtn);
    Button drinkPotButton=findViewById(R.id.drinkPotBtn);
    Button runButton=findViewById(R.id.runBtn);
    attackButton.setOnClickListener(this);
    drinkPotButton.setOnClickListener(this);
    runButton.setOnClickListener(this);

}

@SuppressLint("SetTextI18n")
@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.drinkPotBtn:
            player.drinkPotion(player);
            healthText.setText("Health "+player.getCurrentHP());
        break;
        }

    }
jvidinwx

jvidinwx1#

确保您尝试查找的textview id具有正确的id。您使用的是“r.id.healthtext”
活动计数器屏幕中的文本视图是否有不同的id?

j8ag8udp

j8ag8udp2#

Player player=new Player();
  TextView healthText=findViewById(R.id.healthText);

我相信问题出在上面这句话上。remove=findviewbyid(r.id.healthtext)。

相关问题