Apps are a sports fan’s best friend. Ask any die-hard sports fan their favourite app and it’s going to be a sports app, maybe a Baseball app, maybe Basketball, maybe Football. A well designed sports app gets so much engagement and love from fans. So we’ve designed the best live sports app template, Football Live. Give your sports fans’ live score updates, player stats, stadium info, ladder/table and sport news.
We’ve combined a modern, clean UI with a Android style tab layout and top notch modern, native Java code. It’s ready and waiting to add in your sport data feeds and to be turned into a killer live sports app!
package com.football;
import android.app.ActionBar;
import android.app.ActionBar.OnNavigationListener;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import com.football.custom.CustomActivity;
import com.football.ui.Live;
import com.football.ui.News;
import com.football.ui.Players;
import com.football.ui.Table;
import com.football.ui.Teams;
/**
* The Activity MainActivity is the Main screen of the app and it holds all the
* views and Fragments used in the app.
*
*/
public class MainActivity extends CustomActivity
{
/** The view pager for swipe views. */
private ViewPager pager;
/** The current selected tab. */
private View currentTab;
/* (non-Javadoc)
* @see com.newsfeeder.custom.CustomActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupActionBar();
initTabs();
initPager();
final ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setHomeButtonEnabled(false);
}
/**
* Initialize the tabs. You can write your code related to Tabs.
*/
private void initTabs()
{
findViewById(R.id.tab1).setOnClickListener(this);
findViewById(R.id.tab2).setOnClickListener(this);
findViewById(R.id.tab3).setOnClickListener(this);
findViewById(R.id.tab4).setOnClickListener(this);
findViewById(R.id.tab5).setOnClickListener(this);
setCurrentTab(0);
}
/* (non-Javadoc)
* @see com.activity.custom.CustomActivity#onClick(android.view.View)
*/
@Override
public void onClick(View v)
{
super.onClick(v);
if (v.getId() == R.id.tab1)
pager.setCurrentItem(0, true);
else if (v.getId() == R.id.tab2)
pager.setCurrentItem(1, true);
else if (v.getId() == R.id.tab3)
pager.setCurrentItem(2, true);
else if (v.getId() == R.id.tab4)
pager.setCurrentItem(3, true);
else if (v.getId() == R.id.tab5)
pager.setCurrentItem(4, true);
}
/**
* Sets the current selected tab. Called whenever a Tab is selected either
* by clicking on Tab button or by swiping the ViewPager. You can write your
* code related to tab selection actions.
*
* @param page
* the current page of ViewPager
*/
private void setCurrentTab(int page)
{
if (currentTab != null)
currentTab.setEnabled(true);
if (page == 0)
currentTab = findViewById(R.id.tab1);
else if (page == 1)
currentTab = findViewById(R.id.tab2);
else if (page == 2)
currentTab = findViewById(R.id.tab3);
else if (page == 3)
currentTab = findViewById(R.id.tab4);
else
currentTab = findViewById(R.id.tab5);
currentTab.setEnabled(false);
if (page == 2)
{
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
String items[] = { "News", "My Team News", "League News",
"Latest News" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
actionBar.getThemedContext(),
android.R.layout.simple_spinner_item, android.R.id.text1,
items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter,
new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(
int itemPosition, long itemId)
{
return false;
}
});
getActionBar().setTitle(null);
}
else
{
getActionBar().setTitle(currentTab.getTag().toString());
getActionBar()
.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
}
/**
* Initialize the ViewPager. You can customize this method for writing the
* code related to view pager actions.
*/
private void initPager()
{
pager = (ViewPager) findViewById(R.id.pager);
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int page)
{
setCurrentTab(page);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
});
pager.setAdapter(new DummyPageAdapter(getSupportFragmentManager()));
}
/**
* The Class DummyPageAdapter is a dummy pager adapter for ViewPager. You
* can customize this adapter as per your needs.
*/
private class DummyPageAdapter extends FragmentPagerAdapter
{
/**
* Instantiates a new dummy page adapter.
*
* @param fm
* the FragmentManager
*/
public DummyPageAdapter(FragmentManager fm)
{
super(fm);
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
*/
@Override
public Fragment getItem(int pos)
{
if (pos == 0)
return new Players();
if (pos == 1)
return new Teams();
if (pos == 2)
return new News();
if (pos == 3)
return new Table();
return new Live();
}
/* (non-Javadoc)
* @see android.support.v4.view.PagerAdapter#getCount()
*/
@Override
public int getCount()
{
return 5;
}
}
/* (non-Javadoc)
* @see com.newsfeeder.custom.CustomActivity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
setupSearchView(menu);
return true;
}
/* (non-Javadoc)
* @see com.activity.custom.CustomActivity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
/*if(item.getItemId()==R.id.menu_search)
{
startActivity(new Intent(this, Setting.class));
return true;
}*/
return super.onOptionsItemSelected(item);
}
}