Reputation: 167
I am stuck, I dont get how to implement a ListView that is inside a Fragment, I am trying to make a chat gui.
Is it possible to do something like this or am I totaly out in the wind?
Thanks for help! Regards a newbie! ^^
Here is the Fragment code:
public static class ChatFragment extends Fragment {
public ChatFragment() {
// Empty constructor required for fragment subclasses
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_chat, container, false);
/*FragmentManager fm = getActivity().getFragmentManager();
DataListFragment list = new DataListFragment();
fm.beginTransaction().add(R.id.list_message_History, list).commit();
*/
getActivity().setTitle(R.string.chat);
return rootView;
}
}
But as u see I dont udnerstand how to connect it all. I have med a customized ListFragment that uses a ArrayAdapter to handle the data.
Here is my layout file:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@id/android:list"
android:orientation="horizontal">
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />
</LinearLayout>
</LinearLayout>
Upvotes: 2
Views: 2932
Reputation: 12933
You don't have to add another Fragment inside your ChatFragment to just have a ListView. Get a reference for the ListView out of your layout like this:
ListView list = (ListView)rootView.findViewById(R.id.list);
Now set the adapter and the Array/List to it and you're done.
And don't make a Fragment transaction inside a Fragment. Use your Activity and the DrawerLayout for this job.
Upvotes: 1
Reputation: 2681
No need of ChatFragment
Make you activity a FragmentActivity
and directly inflate the layout(R.layout.fragment_chat) with the ListFragment in that Activity
.
class MainActivity extends FragmentActivity {
onCreate(Bundle extra) {
...
setContentView(R.layout.fragment_chat);
...
}
}
Check this example for using ListFragments
.
Upvotes: 0