Android屏幕切换
16lz
2021-01-26
点击“银行”进入“易惠通 - 银行”屏:
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);}
更多相关文章
- 小白学习android: google code 上源代码的下载方法
- Android(安卓)开发中使用Linux Shell实例详解
- Android(安卓)代码审计工具和常见问题
- Android(安卓)context空指针异常
- android UI结构 (1)Activity 与 Window
- Android百度地图开发(二):显示地图界面
- android onClick事件的不同写法
- Android中级篇之用JAVA代码执行shell命令
- android studio 使用代码混淆