Saturday 15 January 2011

android - Tabs having fragments with listview are showing Blank screen -



android - Tabs having fragments with listview are showing Blank screen -

on opening below activity showing blankscreen. please help new android, populating list database , performing operations on info , showing in listview. when populating info in listview separate activity working fine, when doing same fragments showing blank screen.

my tab activity class bundle com.example.myexpensemanager;

import com.example.myexpensemanager.adapter.tabspageradapter; import android.app.actionbar; import android.app.actionbar.tab; import android.app.fragmenttransaction; import android.os.bundle; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; public class tabactivity extends fragmentactivity implements actionbar.tablistener { private viewpager viewpager; private tabspageradapter madapter; private actionbar actionbar; // tab titles private string[] tabs = { "all", "daily", "weekly","monthly" }; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_tab); // initilization viewpager = (viewpager) findviewbyid(r.id.pager); actionbar = getactionbar(); madapter = new tabspageradapter(getsupportfragmentmanager()); viewpager.setadapter(madapter); actionbar.sethomebuttonenabled(false); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); // adding tabs (string tab_name : tabs) { actionbar.addtab(actionbar.newtab().settext(tab_name) .settablistener(this)); } /** * on swiping viewpager create respective tab selected * */ viewpager.setonpagechangelistener(new viewpager.onpagechangelistener() { @override public void onpageselected(int position) { // on changing page // create respected tab selected actionbar.setselectednavigationitem(position); } @override public void onpagescrolled(int arg0, float arg1, int arg2) { } @override public void onpagescrollstatechanged(int arg0) { } }); } @override public void ontabreselected(tab tab, fragmenttransaction ft) { } @override public void ontabselected(tab tab, fragmenttransaction ft) { // on tab selected // show respected fragment view viewpager.setcurrentitem(tab.getposition()); } @override public void ontabunselected(tab tab, fragmenttransaction ft) { } }

my adapter class

package com.example.myexpensemanager.adapter; import com.example.myexpensemanager.allexpense; import com.example.myexpensemanager.dailyexpense; import com.example.myexpensemanager.monthlyexpense; import com.example.myexpensemanager.weeklyexpense; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.app.fragmentstatepageradapter; public class tabspageradapter extends fragmentstatepageradapter{ public tabspageradapter(fragmentmanager supportfragmentmanager) { // todo auto-generated constructor stub super(supportfragmentmanager); } @override public fragment getitem(int arg0) { // todo auto-generated method stub switch (arg0) { case 0: homecoming new allexpense(); case 1: homecoming new dailyexpense(); case 2: // movies fragment activity homecoming new weeklyexpense(); case 3: // movies fragment activity homecoming new monthlyexpense(); } homecoming null; } @override public int getcount() { // todo auto-generated method stub homecoming 0; } }

my 1 of fragment class.

import java.util.arraylist; import java.util.date; import java.util.hashmap; import java.util.list; import java.util.map; import java.util.navigablemap; import java.util.treemap; import cal_helper.calendar_helper; import com.google.common.collect.arraylistmultimap; import com.google.common.collect.listmultimap; import android.support.v4.app.fragment; import android.support.v7.app.actionbaractivity; import android.content.context; import android.database.cursor; import android.os.bundle; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; 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.listview; import android.widget.simpleadapter; public class weeklyexpense extends fragment { listview lv; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.activity_history, container, false); lv = (listview) rootview.findviewbyid(r.id.history_list); populatedata(); homecoming rootview; } private void populatedata() { // todo auto-generated method stub // setcontentview(r.layout.activity_history); // populatedata(); log.d("point: ", "0"); //tv = (textview)findviewbyid(r.id.textview123); context context = getactivity().getapplicationcontext(); log.d("point: ", "05"); expensedb db = new expensedb(context); log.d("point: ", "04"); cursor cursor = db.getallexpenses(); log.d("point: ", "01"); list<expense> expenselist = new arraylist<expense>(); log.d("point: ", "02"); if (cursor.movetofirst()) { { expense expense = new expense(); expense.setid(integer.parseint(cursor.getstring(0))); expense.setdateid(cursor.getstring(1)); expense.setdescription(cursor.getstring(2)); expense.setamount(integer.parseint(cursor.getstring(3))); expense.setdate(cursor.getstring(4)); expense.setdatestamp(cursor.getstring(5)); expense.setcat_id(integer.parseint(cursor.getstring(6))); // adding contact list expenselist.add(expense); } while (cursor.movetonext()); } log.d("point: ", "1"); listmultimap<integer, expense> mymultimap = arraylistmultimap.create(); map<integer, date> mymap = new treemap<integer,date>(); calendar_helper cal = new calendar_helper(); (expense x : expenselist) { date date=cal.strtodate(x.getdate()); int key =cal.weekofyear(date) + cal.year(date)*100; mymultimap.put(key,x); mymap.put(key,date); } log.d("point: ", "2"); arraylist<hashmap<string, string>> mylist = new arraylist<hashmap<string, string>>(); navigablemap<integer, date> mymap1=((treemap<integer, date>) mymap).descendingmap(); for(integer key : mymap1.keyset()){ list<expense> list = new arraylist<expense>(); list = mymultimap.get(key); int amount = cal_amount(list); int week = cal.weekofyear(mymap.get(key)); int year = cal.year(mymap.get(key)); hashmap<string, string> map = new hashmap<string, string>(); map.put("startdate", cal.startdate(week, year)); map.put("enddate",cal.enddate(week, year)); map.put("amount", integer.tostring(amount)); mylist.add(map); } log.d("point: ", "4"); //now have key values simpleadapter adapter = new simpleadapter(context, mylist, r.layout.activity_week, new string[] {"startdate", "enddate", "amount"}, new int[] {r.id.tv_week, r.id.tv_week2, r.id.tv_wamount}); lv.setadapter(adapter); } private int cal_amount(list<expense> list) { int amount=0; for(expense x: list) { amount += x.getamount(); } homecoming amount; } }

your count should 4.

public int getcount() { // todo auto-generated method stub homecoming 4; }

android android-fragments android-listview android-tabhost android-fragmentactivity

No comments:

Post a Comment