2015-08-13 2 views
-1

У меня есть класс и внутри класса Я пытаюсь вызвать метод findViewById, но я получаю сообщение об ошибке findViewById не определено.Почему findViewById не определен в моем классе?

Я думаю, что мне нужно передать WebView в MyClass или что-то, но я понятия не имею, как это сделать.

Вот код я работаю над:

public class MyClass { 
    Context mContext; 
    MyClass(Context c) { 
     mContext = c; 
    } 
    ... 
    WebView webview = (WebView) mContext.findViewById(R.id.myWebview); 
    webview.loadUrl("mysiteUrl"); 
    ... 
} 

public class MainActivity extends Activity { 
    final myClass mc = new myClass(this); 
    ... 
} 

Я знаю, что это происходит потому, что MyClass не распространяется в Activity. Однако я могу получить WebView без продления Activity ...

Пожалуйста, помогите! Благодарю.

+0

вы не простирающуюся свой класс от 'Activity' или вы не используют этот метод из экземпляра 'View' – Rohit5k2

+0

У меня уже есть класс, который расширяет Activity и я объявляю myClass на этом –

+0

Не имеет значения. Это должно быть либо непосредственно в классе, который расширяет 'Activity', либо вызывается из экземпляра' View' – Rohit5k2

ответ

0

findViewById - это метод, который определяется Android. Поэтому вам нужно на самом деле направить Android Activity как и для того, чтобы признать его в качестве способа:

public class MyClass extends Activity { 

, а затем импортировать Activity при запросе.

Если вы хотите использовать findViewById в не Android Activity то вы можете указать Activity для того, чтобы найти вид в примерно так:

WebView webview = (WebView) OtherActivity.findViewById(R.id.myWebview); 
+0

Фактически у меня уже есть класс, который расширяет Activity и я объявляю myClass на этом. –

+0

@muhammadsappe Я обновил свой ответ. – edwoollard

+0

Что значит «я объявляю myClass на этом» ?. MyClass необходимо расширить Activity –

Смежные вопросы