This is probably twick I'm missing, pls assist
I've create a simple list and bind it to an adapter
but for some reason It ain't showing when running on device
this is align with all tutorials I've come across with
fragment_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:paddingTop="4dip"
android:paddingBottom="6dip"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="13sp"
android:weightSum="1.0"
android:orientation="horizontal"
tools:showIn="@layout/activity_main">
<TextView android:id="@+id/singName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="LOGO"
android:layout_gravity="top"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="40dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ListView
android:layout_width="280dp"
android:layout_height="match_parent"
android:id="@+id/messagesList"
android:layout_gravity="center_vertical|left"
android:visibility="visible"
android:layout_above="@+id/bottomTxt"
android:layout_alignParentStart="true"
android:layout_below="@+id/singName" />
Java:
public class MainActivityFragment extends Fragment {
public MainActivityFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
ListView lv = (ListView) rootView.findViewById(R.id.messagesList);
String [] messages = new String[]{
"Item 1",
"Item 2",
"Item 3",
"Item 4"
};
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<>(
getActivity(),
R.layout.message_item,
messages);
lv.setAdapter(adapter);
return rootView;
}
message_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="50dp"
android:layout_height="50dp"
android:minHeight="?android:listPreferredItemHeightLarge"
android:gravity="center_vertical"
android:textSize="20dp"
android:id="@+id/message_item_text">
</TextView>
Your first problem is that you inflater fragment_main.xml
twice. You have to fix that and return the first View. Other than that what's the problem does it crash or what?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
ListView lv = (ListView) rootView.findViewById(R.id.messagesList);
String [] messages = new String[]{
"Item 1",
"Item 2",
"Item 3",
"Item 4"
};
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<>(
getActivity(),
R.layout.message_item,
messages);
lv.setAdapter(adapter);
return rootView;
}
You posted your fragment.xml
file but you are inflating fragment_main.xml
file.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.