0

我对 android 很陌生,并试图弄清楚委派。解释同理。我有一个搜索框,我在 FragmentA 类中定义如下搜索文本字符串:

protected EditText mSearchView;

现在,我有另一个类 FragmentB 扩展了 Fragment A,它在方法中使用相同的方法如下:

private void displayQuotes(final String searchAutoSuggestTitle, final String searchAutoSuggestSubTitle, final String searchAutoSuggestSymbol) {
        killLastSearchAutoSuggestTask();

        String text = mSearchView.getText().toString().toLowerCase() + " " + mSearchView.getText().toString().toLowerCase();

        if(searchAutoSuggestSymbol.toLowerCase().contains(mSearchView.getText().toString().toLowerCase())){
        QuotesFragmentWebView.newInstanceForSearch(getFragmentManager(), searchAutoSuggestSymbol, null);
        }
        else if(!searchAutoSuggestSymbol.toLowerCase().contains(text)){//mSearchView.getText().toString()))&&""&&(searchAutoSuggestSymbol.contains(mSearchView.getText().toString()))){
            AnswersWebViewFragment.newInstanceForSearch(getFragmentManager(), searchAutoSuggestSymbol, null);

        } else {

        }
        hideSearchView();
    }

现在,为键入的文本检索 mSearchView 文本的值。现在我有另一个类 Fragment C,它扩展了 Fragment 实现 Onclicklistener、mainactivity,并且没有特定的类。我在那里有一个 URL,我将其定义为:

public final static String search_1_result = "https://mobile13.cp.com/fwd/results/answers/service/v1/?q="+mSearchView.getText().toString()+"%20revenue&ui.theme=novadark&uuid=PADACT-002";

但是,我想知道如何让它识别 mSearchView.getText().toString() 值(包括识别它作为错误抛出的 mSearchView,因为它没有在该特定类中定义)。另外,我如何在 Fragment B 中进行键入的值进行搜索,以便在上面给出的 url 中使用?

谢谢!布莱恩

4

1 回答 1

1

参考这个线程: 如何使用另一个类中定义的参数? 我有一个类似的问题,你只需要定义一个函数说

    -public fragment(or your class can be your view class) extends whatever{
        -public void thisfunction(){
        //code to add
        }

}

在您需要的类中调用它并在您希望委托的主类中定义功能,并在引用片段类的函数中调用它。(与我给您的类参考完全相同),不要忘记使用实现功能获取所需的侦听器,在示例 onrawerclosedlistener 中。

于 2013-11-21T20:59:44.400 回答