在其他包中使用私有构造函数扩展类

时间:2016-11-04 01:25:12

标签: java android recognizer-intent

我想覆盖android中的RecognizerIntent视图。为此,我尝试在Android中扩展RecognizerIntent类,如下所示:

package com.example.myapp;

import android.content.Context; 
import android.speech.RecognizerIntent;

public class RecInt extends RecognizerIntent {

    public RecInt(Context c) {
        super(c);
//if I don't call super here, there is an error 'There is no default constructor available in RecognizerIntent'
    } 

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

但我收到了错误

  

在android.speech.RecognizerIntent中,RecognizerIntent()不公开,   无法从外部包裹访问。

我还有什么办法可以扩展非公开课程吗?

我想这样做,以便RecInt启动时

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
startActivityForResult(intent,100);

setContentView(R.layout.activity_recint)中的视图显示,而不是RecognizerIntent视图。

1 个答案:

答案 0 :(得分:1)

  

RecognizerIntent()不公开

构造函数不公开。 The class is public

您可以扩展课程,但无法拨打super。目前还不清楚你为什么这样做,或给出一个上下文。它似乎没有提供该构造函数

另外,该类不是Activity,所以onCreate代码都是错误的