我正在尝试制作一个测验应用程序,一切都工作正常,直到我为第二个按钮输入代码,现在当我单击“开始”时没有任何反应,单击“学习”会出现黑屏。开始应该将用户带到不同的 Activity ,而学习应该将他们带到网站。有人可以检查我的代码有什么问题吗?
package com.example.rupin.whosthatpokemon;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class questionactivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_questionactivity);
Button start = findViewById(R.id.start);
start.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent (getApplicationContext(), one.class);
startActivity(intent);
}
});
start = findViewById(R.id.study);
start.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View view) {
Intent i;
i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.pokemon.com/us/pokedex/"));
startActivity(i);
}
});
}
public void goToActivity2 (View view){
Intent intent = new Intent (this, one.class);
startActivity(intent);
}
}
最佳答案
正如 Loris Securo 在评论中所说,“
您有两次 btn.setOnClickListener
而不是 start.setOnClickListener
”。这意味着您从未设置过开始按钮的 onClickListener。
此外,在第二个 onClickListener 中,您有:
i = new Intent(view.getContext(), one.class);
你应该这样做:
i = new Intent(questionactivity.this, one.class);
虽然 view.getContext()
在技术上应该可以工作,但我总是看到 this
用作 Intent 构造函数中的第一个参数,它是 Context
> 对象。由于 this
(Activity
的一个实例)可以转换为 Context
,因此最好获取外部类的上下文,并且这可以解释为什么当您尝试进入其他 Activity 时会出现黑屏。
旁注:您的类名应以大写字母开头并采用驼峰式命名,例如 ClassOne
或 QuestionActivity
。
关于java - 单击按钮打开空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141802/