Back to project page AQUArinthia.
The source code is released under:
GNU General Public License
If you think the Android project AQUArinthia listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package at.theengine.android.aquarinthhia; /* w w w . ja v a2s . c o m*/ import java.util.ArrayList; import java.util.List; import java.util.Locale; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.NavUtils; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; import at.theengine.android.simple_rss2_android.RSSItem; import at.theengine.android.simple_rss2_android.SimpleRss2Parser; import at.theengine.android.simple_rss2_android.SimpleRss2ParserCallback; public class MainActivity extends FragmentActivity { private Context mContext; private DataLoader mDataLoader; private SectionsPagerAdapter mSectionsPagerAdapter; private ViewPager mViewPager; private ProgressBar mPbLoading; private boolean mIsRainLoaded; private boolean mIsLakesLoaded; private boolean mIsRiversLoaded; private RainfallFragment rainFallFragment; private LakesFragment lakesFragment; private RiversFragment riversFragment; private InfoFragment infoFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); mContext = this; setUpActionBar(); refreshData(); } @Override protected void onResume() { refreshData(); super.onResume(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { switch(item.getItemId()){ case R.id.action_refresh: refreshData(); break; case R.id.action_karte: Intent intent = new Intent(this, MapActivity.class); startActivity(intent); break; } return super.onMenuItemSelected(featureId, item); } private void setUpActionBar() { getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); getActionBar().setIcon(R.drawable.aquarinthia); getActionBar().setDisplayShowTitleEnabled(false); getActionBar().setCustomView(R.layout.ab_view_main); getActionBar().setDisplayShowCustomEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setHomeButtonEnabled(false); mPbLoading = (ProgressBar) getActionBar().getCustomView().findViewById(R.id.pbLoading); } private void refreshData(){ mPbLoading.setVisibility(View.VISIBLE); mIsLakesLoaded = false; mIsRainLoaded = false; mIsRiversLoaded = false; if(mDataLoader == null){ mDataLoader = new DataLoader(mContext, new DataLoaderCallback() { @Override public void onRainDataLoaded(ArrayList<RainData> items) { try { rainFallFragment.loadData(); } catch(Exception ex) {} mIsRainLoaded = true; hideLoading(); } @Override public void onDataLoadingError(Exception ex) { Toast.makeText(mContext, ex.getLocalizedMessage(), Toast.LENGTH_LONG).show(); } @Override public void onLakeDataLoaded(ArrayList<LakeData> items) { try { lakesFragment.loadData(); } catch(Exception ex) {} mIsLakesLoaded = true; hideLoading(); } @Override public void onRiverDataLoaded(ArrayList<RiverData> items) { try { riversFragment.loadData(); } catch(Exception ex) {} mIsRiversLoaded = true; hideLoading(); } }); } mDataLoader.clearCache(); mDataLoader.loadData(); } private void hideLoading(){ if(mIsLakesLoaded && mIsRainLoaded && mIsRiversLoaded){ mPbLoading.setVisibility(View.GONE); } } public DataLoader getDataLoader(){ return mDataLoader; } @Override public void onBackPressed() { this.finish(); } public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if(position == 0){ if(rainFallFragment == null){ rainFallFragment = new RainfallFragment(); } return rainFallFragment; } else if(position == 1){ if(lakesFragment == null){ lakesFragment = new LakesFragment(); } return lakesFragment; } else if(position == 2){ if(riversFragment == null){ riversFragment = new RiversFragment(); } return riversFragment; } else { if(infoFragment == null){ infoFragment = new InfoFragment(); } return infoFragment; } } @Override public int getCount() { return 4; } @Override public CharSequence getPageTitle(int position) { Locale l = Locale.getDefault(); switch (position) { case 0: return getString(R.string.title_section1).toUpperCase(l); case 1: return getString(R.string.title_section2).toUpperCase(l); case 2: return getString(R.string.title_section3).toUpperCase(l); case 3: return getString(R.string.title_section4).toUpperCase(l); } return null; } } }