Android屏幕切换
点击“银行”进入“易惠通 - 银行”屏:
GridView屏对应MainActivity;ListView屏对应BankActivity。
这两个Activity都必须定义在xml文件中。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pervcom.android.eeway" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/eeway" android:label="@string/app_name"> <activity android:name="MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="BankActivity" android:label="@string/bank"> </activity> <activity android:name="EBActivity" android:label="@string/ebbank"> </activity> </application> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-sdk android:minSdkVersion="5" /> </manifest>
点击“银行”时对应的代码段如下,切换到“易惠通 - 银行”调用的方法是startActivity。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//取得GridView对象
GridView gridview = (GridView) findViewById(R.id.gridview);
//添加元素给gridview
gridview.setAdapter(new MainAdapter(this));
//事件监听
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id)
{
try{
ApplicationInfo app = (ApplicationInfo) parent.getItemAtPosition(position);
if(app.intent!=null){
startActivity(app.intent);
}
}catch(Exception ex){
Log.e(LOG_TAG,"OnItemClickListener",ex);
}
}
});
}
ListView对应的数据存储在MainAdapter中,定义如下:
public class MainAdapter extends BaseAdapter {
// 定义Context
private Context mContext;
// 定义易惠通子应用信息
List<ApplicationInfo> appInfos = new LinkedList<ApplicationInfo>();
public MainAdapter(Context c)
{
mContext = c;
buildAppInfos();
}
public void addAppInfo(int iconID, String title, Intent intent){
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.icon = this.mContext.getResources().getDrawable(iconID);
appInfo.icon.setBounds(0, 0, 85, 85);
appInfo.title = title;
appInfo.intent = intent;
appInfos.add(appInfo);
}
public void buildAppInfos()
{
addAppInfo(R.drawable.bank2, "银行", new Intent(mContext,BankActivity.class));
addAppInfo(R.drawable.shopping_cart, "超市", null);
addAppInfo(R.drawable.market, "购物中心", null);
addAppInfo(R.drawable.film_camera_35mm_b, "影剧院", null);
addAppInfo(R.drawable.food2, "餐饮", null);
addAppInfo(R.drawable.boot, "公交", null);
addAppInfo(R.drawable.pay23, "缴费", null);
addAppInfo(R.drawable.set2, "易惠通设置", null);
}
public int getCount() {
return appInfos.size();
}
public Object getItem(int position) {
return appInfos.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ApplicationInfo appInfo = appInfos.get(position);
TextView textView = new TextView(mContext);
textView.setCompoundDrawables(null, appInfo.icon, null, null);
textView.setText(appInfo.title);
textView.setTextSize(16);
textView.setGravity(Gravity.CENTER);
textView.setTag(appInfo.intent);
return textView;
}
}
在本文中,最重要的几行代码是:
ApplicationInfo app = (ApplicationInfo) parent.getItemAtPosition(position);
if(app.intent!=null){
startActivity(app.intent);
}