我在我的應用程序中使用此庫MaterialSearchView以實現Gmail,如搜索視圖。該庫使用一個Activity提供了實現細節。我嘗試了片段內的代碼,進行必要的更改。Android使用片段而不是庫的活動
要實現它,我們做這樣的事情從一個活動:
MaterialSearchView searchView = (MaterialSearchView) findViewById(R.id.search_view);
但是,我使用的是片段代替我做的是:
searchView = (MaterialSearchView) getActivity().findViewById(R.id.search_view);
,一切工作正常,除了語音搜索。該庫使用以下代碼執行語音搜索:
private void onVoiceClicked() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak an item name or number"); // user hint
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH); // setting recognition model, optimized for short phrases – search queries
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); // quantity of results we want to receive
if (mContext instanceof Activity) {
((Activity) mContext).startActivityForResult(intent, REQUEST_VOICE);
}
我該如何做這項工作? mContext
在上面的代碼被設置在構造函數中:
public MaterialSearchView(Context context) {
this(context, null);
}
我怎樣才能使它從一個片段工作?代碼爲library
什麼,確切地說,不工作? – cybersam
它沒有開始處理語音操作的活動,在onVoiceClicked() –