Grid View in a fragment - android

I try to set up a grid view like in this tutorial : http://developer.android.com/guide/topics/ui/layout/gridview.html
But I want a fragment and setContentView in a fragment is not working. What I have to change to make it works ?
Thanks.

Override the onCreateView() method in your fragment like so:
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
return inflater.inflate(R.layout.fragment_layout, container, false);
}

Related

Inflate custom view in fragment

I need to implement custom view in Fragment. So far I have accomplished to extend View class to draw on canvas and set it to activity following google example.
I would like to draw on canvas in fragment and problem is that I do not know how to inflate the view, because it is object but not xml file.
return inflater.inflate(R.layout.article_view, container, false);
Can somebody help me to understand and solve this problem?
Thanks
As simple as this:
#Nullable
#Override
public View onCreateView(LayoutInflater inflater, #Nullable ViewGroup container, #Nullable Bundle savedInstanceState) {
return new YourCustomView(container.getContext());
}

RecyclerView does not show up on tabbed activity, but other views do

I have a layout with 1 Textview and 1 RecyclerView. When this layout is opened both the text view and recycler view show up. However, when I inflate this layout in Android Studio's default tabbed activity, only the TextView is there.
Here's my onCreateView() method for the tabbed activity
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_single, container, false);
return rootView;
}
The activity_single layout contains the textview and recyclerview.
These are the screenshots of the two activities:
Your are not setting up RecycleView in this fragment so it wont show any recycle view in that fragment
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_single, container, false);
//Setup your recycle view here with its adapter
return rootView;
}

Where should I put logic in the Java tab layouts

I have 2 fragments each fragments has a different java logic. Where should i put the java logic? if i did put it in the fragments,then error message displays :
cannot resolve method findViewById, Cannont resolve method getApplicationContext
it appear that you did not inflate the view correctly, change your code to be something like this :
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.your_fragment, container, false);
mButton = (Button) view.findViewById(R.id.mButton );
list_content = (ListView) view.findViewById(R.id.list_content);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
return view;
}
and you should use 'getActivity()' method for context not 'This' .
You can find other view's Id's in your fragment like this.
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.your_layout,container,false);
tabLayout = (TabLayout)view.findViewById(R.id.tabs);
return view;
}
When you inflate the view on the oncreateview make a view field like this :
View view = inflater.inflate(R.layout..., container, false);
and return with this view.
After that with this variable you can reach the findViewById, like
view.findViewById
Instead of getApplicationContext you can use getContext in fragment.
Good luck.

getting a view using getResources()

I want to set text of a TextView that is inside a layout file,
I tried setContentView() but it isnt working since i am using fragments.
I tried using getResources().getLayout(R.layout.abc);
It returns null
I tried setContentView() but it isnt working since i am using
fragments
That's wrong. You have to override onCreateView and inflate and return the layout you want to show, and you can use onCreateView, and use its first parameter, View view, to call findViewById and access the widgets in your layout. You can read more here and here
inside fragment you can set view inside function onCreateView(), use below code
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle b) {
View view = (LinearLayout) inflater.inflate(R.layout.my_layout, container, false);
return view;
}
here my_layout should be the name of layout file,
now you can get view of it inside function onviewcreated()
public void onViewCreated(View view, Bundle savedInstanceState){
// here you can get your textview and set its value
}
thumbs up, if you find my answer correct
You can inflate your layout like this:
ViewGroup group = LayouInflate.from(context).inflate(R.layout.abc,null);
TextView tv = group.findViewById(R.id.xxx);
you have to inflate the layout through the onCreateView method and then return the View.
#Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.your_layout, container, false);
TextView yourTextView = (TextView)rootView.findViewById(R.id.yourTextViewId);
return rootView;
}

xml file not shown in android.R.layout

I'm creating a fragment for navigation drawer but when I'm using inflater.inflate...
my xml file is not among the options available in android.R.layout...
CODE
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(android.R.layout.fragment_navigation_drawer, container, false);
}
Use it like this:
return inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
Thanks a lot everyone for answering..
but I got it correctly this way
int view = R.layout.fragment_navigation_drawer;
return inflater.inflate(view, container, false);

Categories

Resources