我正在尝试制作一个测验应用程序,一切正常,直到我输入我的第二个按钮的代码,现在当我点击开始没有任何反应,点击学习会出现黑屏。开始应该让用户进行不同的活动,并且应该将研究带到网站。有人可以检查我的代码有什么问题吗?
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);
}
}
答案 0 :(得分:0)
正如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
,因此最好获取外部类的上下文,这可以解释为什么会出现黑屏当试图去参加其他活动时。
旁注:您的班级名称应以大写字母开头,并且应为CamelCased,例如ClassOne
或QuestionActivity
。