android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="spacingWidthUniform"
android:gravity="center"
/>
在res\layout目录下再新建一个文件gvitem.xml,用来为main.xml布局文件中的GridView组件提供资源,然后在该文件中添加一个ImageView 组件和一个TextView组件,实现代码如下:
android:id="@+id/item"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
>
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_gravity="center"
android:scaleType="fitXY"
android:padding="4dp"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"
/>
15.9.2 显示各功能窗口
在com.xiaoke.accountsoft.activity包中创建一个MainActivity.java文件,该文件的布局文件设置为main.xml。在MainActivity.java文件中,首先创建一个GridView组件对象,然后分别定义一个String类型的数组和一个int类型的数组,分别用来存储系统功能的文本及对应的图标,代码如下:
GridView gvInfo; //创建GridView对象
String[] titles=new String[]{"新增支出","新增收入","我的支出","我的收入","数据管理","系统设置","收支便签","退出"}; //定义字符串数组,存储系统功能的文本
int[] images=new int[]{R.drawable.addoutaccount,R.drawable.addinaccount,
R.drawable.outaccountinfo,R.drawable.inaccountinfo,R.drawable.showinfo,R.drawable.sysset,R.drawable.accountflag,R.drawable.exit}; //定义int数组,存储功能对应的图标
当用户在主窗体中单击各功能按钮时,使用相应功能所对应的Activity初始化Intent对象,然后使用startActivity()方法启动相应的Activity,而如果用户单击的是“退出”按钮,则调用finish()方法关闭当前Activity。代码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gvInfo=(GridView) findViewById(R.id.gvInfo); //获取布局文件中的gvInfo组件
pictureAdapter adapter=new pictureAdapter(titles,images,this); //创建pictureAdapter对象
gvInfo.setAdapter(adapter); //为GridView设置数据源
gvInfo.setOnItemClickListener(new OnItemClickListener() { //为GridView设置项单击事件
@Override
public void onItemClick(AdapterView> arg0, View arg1, int arg2,
long arg3) {
Intent intent = null; //创建Intent对象
switch (arg2) {
case 0:
//使用AddOutaccount窗口初始化Intent
intent=new Intent(MainActivity.this, AddOutaccount.class);
startActivity(intent); //打开AddOutaccount
break;
case 1:
//使用AddInaccount窗口初始化Intent
intent=new Intent(MainActivity.this, AddInaccount.class);
startActivity(intent); //打开AddInaccount
break;
case 2:
//使用Outaccountinfo窗口初始化Intent
intent=new Intent(MainActivity.this, Outaccountinfo.class);
startActivity(intent); //打开Outaccountinfo
break;
case 3:
//使用Inaccountinfo窗口初始化Intent
intent=new Intent(MainActivity.this, Inaccountinfo.class);
startActivity(intent); //打开Inaccountinfo