peterfeng 发表于 2013-1-26 14:29:15

Android屏幕切换

点击“银行”进入“易惠通 - 银行”屏:
http://dl.iteye.com/upload/attachment/475081/fd103b57-a6d1-313c-989f-4116546ae2ae.png  http://dl.iteye.com/upload/attachment/475083/c518b251-c42e-3c58-8cc3-95fbade213c5.png
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。
@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);//取得GridView对象GridView gridview = (GridView) findViewById(R.id.gridview);//添加元素给gridviewgridview.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 {// 定义Contextprivate ContextmContext;// 定义易惠通子应用信息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);} 
页: [1]
查看完整版本: Android屏幕切换