Sunday, 15 April 2012

Android - ListView not displaying in New Activity -



Android - ListView not displaying in New Activity -

i'm new android , object-oriented code, i'm overlooking small.

i have activity containing custom listviews in fragments, changed via swipe , tabs. upon pressing particular item in particular list few times, new activity should open , contain listview.

when run code, can sec activity (factoryscreen.java) open fragment (statusfragment.java), factoryscreen.java appears blank activity.

i've been trawling through forums online similar cases haven't had luck. again, since i'm new this, i'm not exclusively sure of ways debug this. have noticed, however, fragment_factory_screen.xml, contains activity layout, exclusively fine displaying textview item (with basic "hello world"), apparently not listview.

statusfragment.java (factoryscreen.java initialised here via intent)

import java.util.arraylist; import com.example.path.r; import android.content.context; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.listview; import android.widget.toast; public class statusfragment extends fragment { private context mcontext; private arraylist<dataitem> info = new arraylist<dataitem>(); // dataitem contains 2 strings listview mylist; int = 0; @override public void oncreate (bundle savedinstancestate) { super.oncreate(savedinstancestate); mcontext = getactivity(); // context of activity , hence fragment mylist = new listview (mcontext); // create listview // fill out elements go 'data' ... // data.add each dataitem variable ... } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // inflate view view rootview = inflater.inflate(r.layout.fragment_status, container, false); // (?) identify mylist list placed in rootview mylist=(listview) rootview.findviewbyid(android.r.id.list); // create , set customised adapter take info (arraylist<dataitem>) , format // each element placed defined in list_row.xml customadapter adapter = new customadapter(mcontext, r.layout.list_row, data); mylist.setadapter(adapter); // when mylist item clicked, show toast. mylist.setonitemclicklistener(new adapterview.onitemclicklistener() { public void onitemclick(adapterview<?> parentadapter, view view, int position, long id) { // if item 1 clicked 3 times, open new activity if(id == 1) { i++; if(i == 3) { intent intent = new intent(mcontext, factoryscreen.class); = 0; startactivity(intent); } else { ... } } else { ... } } }); homecoming rootview; // oncreateview must homecoming view variable if displaying ui. } }

factoryscreen.java (activity opened, listview doesn't display)

import java.util.arraylist; import com.example.baseappwithcalibration.r; import android.app.activity; import android.content.context; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.listview; import android.widget.toast; public class factoryscreen extends activity { private context mcontext; private arraylist<dataitem> info = new arraylist<dataitem>(); listview mylist; @override public void oncreate (bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_factory_screen); mcontext = this; // context of activity , hence fragment mylist = new listview (mcontext); // create listview // create elements added list ... // add together elements list ... } public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // inflate view view rootview = inflater.inflate(r.layout.fragment_factory_screen, container, false); // (?) identify mylist list placed in rootview mylist=(listview)findviewbyid(android.r.id.list); // create , set customised adapter take info (arraylist<dataitem>) , format // each element defined in list_row.xml customadapter adapter = new customadapter(mcontext, r.layout.list_row, data); mylist.setadapter(adapter); // when mylist item clicked, show toast. mylist.setonitemclicklistener(new adapterview.onitemclicklistener() { public void onitemclick(adapterview<?> parentadapter, view view, int position, long id) { // used in form of toast.maketext(context, text, duration); toast.maketext(factoryscreen.this, "this description of parameter.", toast.length_short).show(); } }); homecoming rootview; // oncreateview must homecoming view variable if displaying ui. } }

fragment_factory_screen.xml (contains layout factoryscreen.xml)

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" > <listview android:drawselectorontop="false" android:id="@android:id/list" android:layout_height="0dip" android:layout_weight="1" android:layout_width="match_parent" > </listview> </linearlayout>

any help/guidance appreciated!

there no method called oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) activity.thus function not executed in case.this why listview not visible. in factoryscreen activity,move code method oncreateview() oncreate().

@override public void oncreate (bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_factory_screen); mcontext = this; // context of activity , hence fragment // (?) identify mylist list placed in rootview mylist=(listview)findviewbyid(android.r.id.list); // create , set customised adapter take info (arraylist<dataitem>) , format // each element defined in list_row.xml customadapter adapter = new customadapter(mcontext, r.layout.list_row, data); mylist.setadapter(adapter); // when mylist item clicked, show toast. mylist.setonitemclicklistener(new adapterview.onitemclicklistener() { public void onitemclick(adapterview<?> parentadapter, view view, int position, long id) { // used in form of toast.maketext(context, text, duration); toast.maketext(factoryscreen.this, "this description of parameter.", toast.length_short).show(); } }); }

}

android android-activity android-listview

No comments:

Post a Comment