I\'m having a trouble with findViewByid
but I can\'t find where the problem is.
Here\'s my FirstFragment
class code:
import and
Add getView()
before findViewById()
method.
Like this:
getView().findViewById(R.id.potatoes);
getActivity().findViewById() This works it removes the red colour of findviewby id and it doesnt say cannot resolve symbol but when i put a colin in the end the whole statement is underlined and it says unreachable statement. barChart =(BarChart)getActivity().findViewById(R.id.barchart); I am also doing this in fragment.
I had this problem when I downloaded sample project from github. This project had
compileSdkVersion 23
buildToolsVersion "23.0.0"
targetSdkVersion 23
in Activity context
and findViewById()
were in red color inside onCreate() method. So I updated the above versions to
compileSdkVersion 25
buildToolsVersion "25.0.3"
targetSdkVersion 25
and error got resolved.
You need to do this in onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.secondefragment, container, false);
mWebView = (WebView) view.findViewById(R.id.activity_main_webview);
progressBar = (ProgressBar) view.findViewById(R.id.progressBar1);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
return view;
}
Fragment
doesn't provide thefindViewById()
method. This is provided in Activity
or View
. When implementing a Fragment
you don't inflate your views in onCreate()
(like you normally do in an Activity
.) Instead, you do it in onCreateView()
and you need to use the inflated root View
to find the ID within the layout you inflated.
This is how you can solve the problem:
toggleButton1=(ToggleButton)findViewById(R.id.toggleButton1);
toggleButton2=(ToggleButton)findViewById(R.id.toggleButton2);