单击按钮可打开空白屏幕

时间:2018-01-07 21:43:01

标签: java android button

我正在尝试制作一个测验应用程序,一切正常,直到我输入我的第二个按钮的代码,现在当我点击开始没有任何反应,点击学习会出现黑屏。开始应该让用户进行不同的活动,并且应该将研究带到网站。有人可以检查我的代码有什么问题吗?

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

1 个答案:

答案 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对象。由于thisActivity的一个实例)可以强制转换为Context,因此最好获取外部类的上下文,这可以解释为什么会出现黑屏当试图去参加其他活动时。

旁注:您的班级名称应以大写字母开头,并且应为CamelCased,例如ClassOneQuestionActivity