Wednesday, 15 July 2015

java - Placing a ListView in a Fragment Activity -



java - Placing a ListView in a Fragment Activity -

in android app, trying place listview in fragmentactivity. unfortunately there no such thing fragmentlistactivity. problem can't phone call setlistadapter() , onlistitemclick() methods.

so did lot of research , went xml file , manually added listview there. instead of getlistview(), declared listview variable phone call methods on new listview variable. unfortunately method still riddled errors method unable resolved etc.

here java code:

package com.spicycurryman.getdisciplined10.app; import android.app.alertdialog; import android.app.progressdialog; import android.content.activitynotfoundexception; import android.content.dialoginterface; import android.content.intent; import android.content.pm.applicationinfo; import android.content.pm.packagemanager; import android.net.uri; import android.os.asynctask; import android.os.bundle; import android.support.v4.app.fragmentactivity; import android.view.layoutinflater; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.listview; import android.widget.toast; import android.widget.adapterview.onitemclicklistener; import com.javatechig.listapps.applicationadapter; import java.util.arraylist; import java.util.list; public class installedappactivity extends fragmentactivity { private packagemanager packagemanager = null; private list<applicationinfo> applist = null; private applicationadapter listadaptor = null; //implementing listview programatically listview installedapplist = (listview) findviewbyid(r.id.installed_list); public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { super.oncreate(savedinstancestate); packagemanager = getpackagemanager(); new loadapplications().execute(); homecoming inflater.inflate(r.layout.installed_apps, container, false); } public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.block, menu); homecoming true; } public boolean onoptionsitemselected(menuitem item) { boolean result = true; switch (item.getitemid()) { case r.id.main_text: { displayaboutdialog(); break; } default: { result = super.onoptionsitemselected(item); break; } } homecoming result; } private void displayaboutdialog() { final alertdialog.builder builder = new alertdialog.builder(this); builder.settitle(getstring(r.string.app_name)); builder.setmessage(getstring(r.string.slogan)); builder.setpositivebutton("know more", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int id) { intent browserintent = new intent(intent.action_view, uri.parse("http://javatechig.com")); startactivity(browserintent); dialog.cancel(); } }); builder.setnegativebutton("no thanks!", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int id) { dialog.cancel(); } }); builder.show(); } //here installedapplist.setonitemclicklistener(new onitemclicklistener()){ @override public void onitemclick(adapterview <?> arg0, view view, int index, long id){ applicationinfo app = applist.get(index); seek { intent intent = packagemanager .getlaunchintentforpackage(app.packagename); if (null != intent) { startactivity(intent); } } grab (activitynotfoundexception e) { toast.maketext(installedappactivity.this, e.getmessage(), toast.length_long).show(); } grab (exception e) { toast.maketext(installedappactivity.this, e.getmessage(), toast.length_long).show(); } } }); private list<applicationinfo> checkforlaunchintent(list<applicationinfo> list) { arraylist<applicationinfo> applist = new arraylist<applicationinfo>(); (applicationinfo info : list) { seek { if (null != packagemanager.getlaunchintentforpackage(info.packagename)) { applist.add(info); } } grab (exception e) { e.printstacktrace(); } } homecoming applist; } private class loadapplications extends asynctask<void, void, void> { private progressdialog progress = null; @override protected void doinbackground(void... params) { applist = checkforlaunchintent(packagemanager.getinstalledapplications(packagemanager.get_meta_data)); listadaptor = new applicationadapter(installedappactivity.this, r.layout.snippet_list_row, applist); homecoming null; } @override protected void oncancelled() { super.oncancelled(); } @override protected void onpostexecute(void result) { //setlistadapter(listadaptor); installedapplist.setadapter(listadaptor); progress.dismiss(); super.onpostexecute(result); } @override protected void onpreexecute() { progress = progressdialog.show(installedappactivity.this, null, "loading application info..."); super.onpreexecute(); } @override protected void onprogressupdate(void... values) { super.onprogressupdate(values); } } }

here xml file:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <listview android:id="@+id/installed_list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </linearlayout>

try this..

you have missed oncreate

listview installedapplist; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.installed_apps); installedapplist = (listview) findviewbyid(r.id.installed_list); packagemanager = getpackagemanager(); new loadapplications().execute(); installedapplist.setonitemclicklistener(new onitemclicklistener()){ @override public void onitemclick(adapterview <?> arg0, view view, int index, long id){ applicationinfo app = applist.get(index); seek { intent intent = packagemanager .getlaunchintentforpackage(app.packagename); if (null != intent) { startactivity(intent); } } grab (activitynotfoundexception e) { toast.maketext(installedappactivity.this, e.getmessage(), toast.length_long).show(); } grab (exception e) { toast.maketext(installedappactivity.this, e.getmessage(), toast.length_long).show(); } } }); }

and remove oncreateview , add together itemclicklistener within oncreate

java android xml android-fragments android-listview

No comments:

Post a Comment