Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';不要在android中打开活动_Java_Android - Fatal编程技术网

Java Can';不要在android中打开活动

Java Can';不要在android中打开活动,java,android,Java,Android,我对android编程有一些问题。我试图在手机上打开一个活动,但失败了。它说,不幸的是,程序已经停止。我不知道如何解决这个问题,我尝试从下面的方法连接。感谢您的帮助。请询问我是否没有详细说明 public void addGlossary(View v){ Intent intent = new Intent (this, addGlossary.class); Button buttonZero = (Button) findViewById(R.id.buttonZe

我对android编程有一些问题。我试图在手机上打开一个活动,但失败了。它说,不幸的是,程序已经停止。我不知道如何解决这个问题,我尝试从下面的方法连接。感谢您的帮助。请询问我是否没有详细说明

    public void addGlossary(View v){
    Intent intent = new Intent (this, addGlossary.class);
    Button buttonZero = (Button) findViewById(R.id.buttonZero);
    startActivity(intent);

}
以下是活动的代码:

public abstract class addGlossary extends Activity implements OnClickListener, OnInitListener {


    private int MY_DATA_CHECK_CODE = 0;


   private TextToSpeech myTTS;


private MediaPlayer mMediaPlayer;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_glossary);


        Button speakButton = (Button)findViewById(R.id.speak);
        speakButton.setOnClickListener(this);


        Intent checkTTSIntent = new Intent();
        checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer = MediaPlayer.create(this, R.raw.button);
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mMediaPlayer.start();
        mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mMediaPlayer.stop();
            }
        });


    }

    public void buttonReturn(View v){
        Intent intent = new Intent (this, MainActivity.class);
        Button buttonreturn = (Button) findViewById(R.id.buttonReturn);
        startActivity(intent);

    }


    public void startGame(View v){
        Intent intent = new Intent (this, firstLevel.class);
        Button buttonstart = (Button) findViewById(R.id.buttonStart);
        startActivity(intent);



    }




    public void onInit(int initStatus) {
        if(myTTS.isLanguageAvailable(Locale.US)==TextToSpeech.LANG_AVAILABLE) {
            myTTS.setLanguage(Locale.US);
        }

        else if (initStatus == TextToSpeech.ERROR) {
            Toast.makeText(this, "Sorry! Text To Speech failed...", Toast.LENGTH_LONG).show();
        }

    }


    private void speakWords(String speech){
        myTTS.speak(speech, TextToSpeech.QUEUE_FLUSH, null);



        }

    public void buttonAdd(){
        //lagrar texten från textfältet man knappade in till string
        EditText enteredText = (EditText)findViewById(R.id.enter);
        String words = enteredText.getText().toString();
        speakWords(words);

    }



    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == MY_DATA_CHECK_CODE) {
            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
                myTTS = new TextToSpeech(this, this);
            }
            else {
                Intent installTTSIntent = new Intent();
                installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(installTTSIntent);
            }
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_glossary, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

adGlossary类是一个抽象类。Android需要看到一个具体的活动实现来启动一个

删除abstract关键字,并假设您的清单中有活动,那么它应该启动

**编辑:**正如Chris Stratton在评论中指出的,放置摘要的原因可能是为了实现OnClickListener和OnInitListener。虽然代码可能已编译,但解决方案仍然不可行

因此,除了删除抽象限定符外,还必须实现接口

解决方案:删除抽象修饰符。编译器应立即检测未实现的方法,并要求您提供添加未实现的方法或将类标记为抽象类的选项(红色曲线将显示,当您将鼠标移到该类上时,您应获得这些选项)。要求编译器添加未实现的方法。你现在应该有:

@Override
public void onClick(View view) {
    // Do something when clicked
    // Implement logic here
}

@Override
public void onInit(int status) {
    // Implement logic here
}

// It will be all done and everything should work

只需在上述方法中实现您的逻辑即可。

您的adGlossary类是一个抽象类。Android需要看到一个具体的活动实现来启动一个

删除abstract关键字,并假设您的清单中有活动,那么它应该启动

**编辑:**正如Chris Stratton在评论中指出的,放置摘要的原因可能是为了实现OnClickListener和OnInitListener。虽然代码可能已编译,但解决方案仍然不可行

因此,除了删除抽象限定符外,还必须实现接口

解决方案:删除抽象修饰符。编译器应立即检测未实现的方法,并要求您提供添加未实现的方法或将类标记为抽象类的选项(红色曲线将显示,当您将鼠标移到该类上时,您应获得这些选项)。要求编译器添加未实现的方法。你现在应该有:

@Override
public void onClick(View view) {
    // Do something when clicked
    // Implement logic here
}

@Override
public void onInit(int status) {
    // Implement logic here
}

// It will be all done and everything should work

只需在上述方法中实现您的逻辑即可。

您的adGlossary类是一个抽象类。Android需要看到一个具体的活动实现来启动一个

删除abstract关键字,并假设您的清单中有活动,那么它应该启动

**编辑:**正如Chris Stratton在评论中指出的,放置摘要的原因可能是为了实现OnClickListener和OnInitListener。虽然代码可能已编译,但解决方案仍然不可行

因此,除了删除抽象限定符外,还必须实现接口

解决方案:删除抽象修饰符。编译器应立即检测未实现的方法,并要求您提供添加未实现的方法或将类标记为抽象类的选项(红色曲线将显示,当您将鼠标移到该类上时,您应获得这些选项)。要求编译器添加未实现的方法。你现在应该有:

@Override
public void onClick(View view) {
    // Do something when clicked
    // Implement logic here
}

@Override
public void onInit(int status) {
    // Implement logic here
}

// It will be all done and everything should work

只需在上述方法中实现您的逻辑即可。

您的adGlossary类是一个抽象类。Android需要看到一个具体的活动实现来启动一个

删除abstract关键字,并假设您的清单中有活动,那么它应该启动

**编辑:**正如Chris Stratton在评论中指出的,放置摘要的原因可能是为了实现OnClickListener和OnInitListener。虽然代码可能已编译,但解决方案仍然不可行

因此,除了删除抽象限定符外,还必须实现接口

解决方案:删除抽象修饰符。编译器应立即检测未实现的方法,并要求您提供添加未实现的方法或将类标记为抽象类的选项(红色曲线将显示,当您将鼠标移到该类上时,您应获得这些选项)。要求编译器添加未实现的方法。你现在应该有:

@Override
public void onClick(View view) {
    // Do something when clicked
    // Implement logic here
}

@Override
public void onInit(int status) {
    // Implement logic here
}

// It will be all done and everything should work

只需在上述方法中实现您的逻辑,就可以了。

请发布stacktrace(错误日志),这样这里的人就可以诊断问题了。为什么您将您的
活动声明为
摘要
?不可能创建
抽象类的实例,这是它可能失败的一个很好的原因。删除
abstract
声明,看看会发生什么。我打赌IDE提供了将类抽象为(反效果的)建议修复方法的选择,以解决某些问题,例如未实现某个已实现接口的方法之一…请发布stacktrace(错误日志)因此,这里的人可以诊断问题,为什么您将您的
活动
声明为
摘要
?不可能创建
抽象类的实例,这是它可能失败的一个很好的原因。删除
abstract
声明,看看会发生什么。我打赌IDE提供了将类抽象为(反效果的)建议修复方法的选择,以解决某些问题,例如未实现某个已实现接口的方法之一…请发布stacktrace(错误日志)因此,这里的人可以诊断问题,为什么您将您的
活动
声明为
摘要
?不可能创建
抽象类的实例,这是它可能失败的一个很好的原因。删除
abstract
声明,看看会发生什么。我打赌