package com.roboo.like.google;
import android.app.ActionBar;
import android.app.ActionBar.OnNavigationListener;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MenuItem;
import com.roboo.like.google.adapters.BusStationAdapter2;
import com.roboo.like.google.fragments.BusLineFragment2;
import com.roboo.like.google.models.BusItem;
import com.roboo.like.google.models.BusStationItem;
/** 公交界面 */
public class BusLineActivity extends BaseLayoutActivity
{
private static final String EXTRA_BUS_ITEM = "bus_item";
/** 反向的BusItem信息 */
private static final String EXTRA_BUS__INVERT_ITEM = "bus_invert_item";
private BusItem mBusItem;
private BusItem mBusInVertItem;
private boolean mIsInvert = false;
private boolean mIsActuralSelected = false;
/**公交站台编号*/
private String mStationMark;
public static void actionBusLine(Activity activity, BusItem item)
{
Intent intent = new Intent(activity, BusLineActivity.class);
intent.putExtra(EXTRA_BUS_ITEM, item);
activity.startActivity(intent);
}
public static void actionBusLine(Activity activity, BusItem item,
BusItem invertingItem)
{
Intent intent = new Intent(activity, BusLineActivity.class);
intent.putExtra(EXTRA_BUS_ITEM, item);
intent.putExtra(EXTRA_BUS__INVERT_ITEM, invertingItem);
activity.startActivity(intent);
}
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bus);// TODO
initView();
mBusItem = (BusItem) getIntent().getSerializableExtra(EXTRA_BUS_ITEM);
if (null != getIntent().getSerializableExtra(EXTRA_BUS__INVERT_ITEM))
{
mBusInVertItem = (BusItem) getIntent().getSerializableExtra(
EXTRA_BUS__INVERT_ITEM);
}
customActionBar(mBusItem.busNo);
if (getSupportFragmentManager().findFragmentById(R.id.frame_container) == null)
{
getSupportFragmentManager()
.beginTransaction()
.add(
R.id.frame_container,
BusLineFragment2.newInstance(mBusItem.busUrl,
mBusItem.busNo)).commit();
}
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
public void initView()
{
}
public void invert()
{
if (null != mBusInVertItem)
{
if (!mIsInvert)
{
beginTransaction().replace(
R.id.frame_container,
BusLineFragment2.newInstance(mBusInVertItem.busUrl,
mBusInVertItem.busNo )).commit();
mIsInvert = true;
}
else
{
beginTransaction().replace(
R.id.frame_container,
BusLineFragment2.newInstance(mBusItem.busUrl,
mBusItem.busNo)).commit();
mIsInvert = false;
}
}
}
public void customActionBar(String busNo)
{
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
mActionBar.setDisplayHomeAsUpEnabled(true);
mActionBar.setDisplayShowTitleEnabled(true);
if (TextUtils.isDigitsOnly(mBusItem.busNo))
{
mActionBar.setTitle("公交 - " + busNo + " 路");
}
else
{
mActionBar.setTitle("公交 - " + busNo);
}
mActionBar.setLogo(R.drawable.ic_abs_bus_up);
}
public void showNavActionBar(final BusStationAdapter2 adapter)
{
mActionBar.setDisplayHomeAsUpEnabled(true);
mActionBar.setHomeButtonEnabled(true);
mIsActuralSelected = false;
mActionBar.setDisplayShowTitleEnabled(false);
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
mActionBar.setListNavigationCallbacks(adapter,
new OnNavigationListener()
{
public boolean onNavigationItemSelected(int itemPosition,
long itemId)
{// 在这里进行切换 ,不可行 , 默认情况下会执行一次该方法
if (!mIsActuralSelected)
{
mIsActuralSelected = true;
return true;
}
// Toast.makeText(
// getBaseContext(),
// "" + itemPosition
// + mActionBar.getSelectedNavigationIndex(),
// Toast.LENGTH_SHORT).show();
mActionBar
.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
BusStationItem busStationItem = (BusStationItem) adapter
.getItem(itemPosition);
beginTransaction().replace(
R.id.frame_container,
BusLineFragment2.newInstance(busStationItem.stationUrl,
busStationItem.busNo)).commit();
customActionBar(busStationItem.busNo);
return false;
}
});
}
@Override
public void onBackPressed()
{
if (getSupportFragmentManager().getBackStackEntryCount() > 0)
{
getSupportFragmentManager().popBackStack();
return;
}
super.onBackPressed();
}
@Override
public void onUserInteraction()
{
super.onUserInteraction();
// Toast.makeText(this, "用户触摸屏幕", Toast.LENGTH_SHORT).show();
}
public String getStationMark()
{
return mStationMark;
}
public void setStationMark(String stationMark)
{
mStationMark = stationMark;
}
}