Skip to main content

Android: how to open new intent from ListView, hosted in TabHost, inside same FrameLayout?



I looked through tons of articles how to open new Activity from ListView hosted by TabHost.








I have a TabHost Activity, one of the tabs has ListView, with clickable list items.


On item click, I want new Activity to be opened in the same FrameLayout.


My code for calling new Activity looks as following:









Intent intent = new Intent(v.getContext(), displayRSS.class);

this.startActivity(intent);









This opens just new Activity.


I want new Activity to be opened instead of current ListActivity.






Would appreciate any possible solutions on this.


Comments

  1. If u want to open the activity in the same tab, do the following

    while creating tabs, u have to launch activity group in that tab as

    Tabspec tabspec=getTabHost().newTabSpec("title").setContent(new Intent(TabGroupActivityEx.class,"unique string"));
    getTabHost().addTab(tabspec);

    under this tab group activity launch an activity that contains list view, when an item click launch another activity with setContentView() then u will get as u required.

    ReplyDelete
  2. I solved my problem with TabGroupActivity class example from this article Experience - Multiple Android Activities in a TabActivity

    ReplyDelete
  3. i m not getting it, where i have to put setContentView(), pls explain it with example, i will be grateful to you....

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...