Android开发学习之LauncherActivity开发启动的列表

创建项目:OtherActivity

项目运行结果:

 

建立主Activity:OtherActivity.java

[java] 
package wwj.otherActivity; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.LauncherActivity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ArrayAdapter; 
import android.support.v4.app.NavUtils; 
 
public class OtherActivity extends LauncherActivity { 
     
    //定义两个Activity的名称  
    String[] names = {"设置程序参数", "查看星际兵种"}; 
    //定义两个Activity对应的实现类  
    Class<?>[] clazzs = {PreferenceActivityTest.class, 
            ExpandableListActivityTest.class}; 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1 
                , names); 
        // 设置该窗口显示的列表所需的Adapter  
        setListAdapter(adapter); 
    } 
    //根据列表项返回指定Activity对应的Intent  
    @Override 
    protected Intent intentForPosition(int position) { 
        // TODO Auto-generated method stub  
        return new Intent(OtherActivity.this, clazzs[position]); 
    } 
}

package wwj.otherActivity;

import android.os.Bundle;
import android.app.Activity;
import android.app.LauncherActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.support.v4.app.NavUtils;

public class OtherActivity extends LauncherActivity {
 
 //定义两个Activity的名称
 String[] names = {"设置程序参数", "查看星际兵种"};
 //定义两个Activity对应的实现类
 Class<?>[] clazzs = {PreferenceActivityTest.class,
   ExpandableListActivityTest.class};
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1
          , names);
        // 设置该窗口显示的列表所需的Adapter
        setListAdapter(adapter);
    }
    //根据列表项返回指定Activity对应的Intent
    @Override
    protected Intent intentForPosition(int position) {
     // TODO Auto-generated method stub
     return new Intent(OtherActivity.this, clazzs[position]);
    }
}
建立第一个列表项的Activity:PreferenceActivityTest.java

[java]
package wwj.otherActivity; 
 
import android.os.Bundle; 
 
public class PreferenceActivityTest extends android.preference.PreferenceActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState); 
        //设置显示参数设置布局  
        addPreferencesFromResource(R.xml.preferences); 
    } 
}

package wwj.otherActivity;

import android.os.Bundle;

public class PreferenceActivityTest extends android.preference.PreferenceActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  //设置显示参数设置布局
  addPreferencesFromResource(R.xml.preferences);
 }
}

PreferenceActivity使用的界面布局文件

[html
<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- 设置系统铃声 --> 
    <RingtonePreference 
        android:ringtoneType="all" 
        android:title="设置铃声" 
        android:summary="选择铃声" 
        android:showDefault="true" 
        android:key="ring_key" 
        android:showSilent="true"> 
    </RingtonePreference> 
    <PreferenceCategory 
        android:title="个人信息设置组"> 
        <!-- 通过输入框填写用户名 --> 
        <EditTextPreference  
            android:key="name" 
            android:title="用户名" 
            android:summary="填写你的用户名" 
            android:dialogTitle="您所使用的用户名为: " 
            /> 
        <!-- 通过列表框选择性别 --> 
        <ListPreference  
            android:key="gender" 
            android:title="性别" 
            android:summary="选择您的性别" 
            android:dialogTitle="ListPreference" 
            android:entries="@array/gender_name_list" 
            android:entryValues="@array/gender_value_list" 
            /> 
    </PreferenceCategory> 
    <PreferenceCategory  
        android:title="系统功能设置组"> 
        <CheckBoxPreference  
            android:key="autoSave" 
            android:title="自动保存进度" 
            android:summaryOn="自动保存 :开启" 
            android:summaryOff="自动保存:关闭" 
            android:defaultValue="true"/> 
    </PreferenceCategory> 
    </PreferenceScreen>

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
 <!-- 设置系统铃声 -->
 <RingtonePreference
     android:ringtoneType="all"
     android:title="设置铃声"
     android:summary="选择铃声"
     android:showDefault="true"
     android:key="ring_key"
     android:showSilent="true">
 </RingtonePreference>
 <PreferenceCategory
     android:title="个人信息设置组">
     <!-- 通过输入框填写用户名 -->
     <EditTextPreference
         android:key="name"
         android:title="用户名"
         android:summary="填写你的用户名"
         android:dialogTitle="您所使用的用户名为: "
         />
     <!-- 通过列表框选择性别 -->
     <ListPreference
         android:key="gender"
         android:title="性别"
         android:summary="选择您的性别"
         android:dialogTitle="ListPreference"
         android:entries="@array/gender_name_list"
         android:entryValues="@array/gender_value_list"
         />
 </PreferenceCategory>
 <PreferenceCategory
     android:title="系统功能设置组">
     <CheckBoxPreference
         android:key="autoSave"
         android:title="自动保存进度"
         android:summaryOn="自动保存 :开启"
         android:summaryOff="自动保存:关闭"
         android:defaultValue="true"/>
 </PreferenceCategory>
 </PreferenceScreen>
数组文件:array.xml

[html] 
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="gender_name_list"> 
    <item>男</item> 
    <item>女</item> 
</string-array> 
<string-array name="gender_value_list"> 
    <item>male</item> 
    <item>female</item> 
</string-array> 
</resources>

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="gender_name_list">
 <item>男</item>
 <item>女</item>
</string-array>
<string-array name="gender_value_list">
 <item>male</item>
 <item>female</item>
</string-array>
</resources>

创建第二个列表项的Activity:ExpandableListActivity.java

[java] 
package wwj.otherActivity; 
 
import android.app.ExpandableListActivity; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AbsListView; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.ExpandableListAdapter; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
 
public class ExpandableListActivityTest extends ExpandableListActivity { 
     
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState); 
        ExpandableListAdapter adapter = new BaseExpandableListAdapter() { 
             
            int[] logos = new int[]{ 
                    R.drawable.p, 
                    R.drawable.z, 
                    R.drawable.t 
            }; 
            private String[] armTypes = new String[] 
                    {"神族兵种", "虫族兵种", "人族兵种"}; 
            private String[][] arms = new String[][]{ 
                    {"狂战士", "龙骑士", "黑暗圣堂", "点兵"}, 
                    {"小狗", "刺蛇", "飞龙", "自爆飞机" }, 
                    {"机枪兵", "护士MM", "幽灵"} 
            }; 
             
            //获取指定组位置、指定子列表项处的子列表项数据  
            public Object getChild(int groupPosition, int childPosition) { 
                // TODO Auto-generated method stub  
                return arms[groupPosition][childPosition]; 
            } 
             
            public long getChildId(int groupPosition, int childPosition) { 
                return childPosition;}; 
                 
            public int getChildrenCount(int groupPosition) { 
                    // TODO Auto-generated method stub  
                    return arms[groupPosition].length; 
                }    
             
            private TextView getTextView(){ 
                AbsListView.LayoutParams lp = new AbsListView.LayoutParams( 
                        ViewGroup.LayoutParams.FILL_PARENT, 64); 
                TextView textView = new TextView(ExpandableListActivityTest.this); 
                textView.setLayoutParams(lp); 
                textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
                textView.setPadding(36, 0, 0, 0); 
                textView.setTextSize(20); 
                return textView; 
            } 
             
            public View getChildView(int groupPosition, int childPosition, 
                    boolean isLastChild, View convertView, ViewGroup parent) { 
                // TODO Auto-generated method stub  
                TextView textView = getTextView(); 
                textView.setText(getChild(groupPosition, childPosition).toString()); 
                return textView; 
            } 
             
            //获取指定位置处的组数据  
            public Object getGroup(int groupPosition) { 
                return armTypes[groupPosition]; 
            }; 
            public int getGroupCount() { 
                // TODO Auto-generated method stub  
                return armTypes.length; 
            } 
            public long getGroupId(int groupPosition) { 
                // TODO Auto-generated method stub  
                return groupPosition; 
            } 
             
            public View getGroupView(int groupPosition, boolean isExpanded, 
                    View convertView, ViewGroup parent) { 
                // TODO Auto-generated method stub  
                LinearLayout ll = new LinearLayout(ExpandableListActivityTest.this); 
                ll.setOrientation(0); 
                ImageView logo = new ImageView(ExpandableListActivityTest.this); 
                logo.setImageResource(logos[groupPosition]); 
                ll.addView(logo); 
                TextView textView = getTextView(); 
                textView.setText(getGroup(groupPosition).toString()); 
                ll.addView(textView); 
                return ll; 
            } 
 
            public boolean hasStableIds() { 
                // TODO Auto-generated method stub  
                return true; 
            } 
 
            public boolean isChildSelectable(int groupPosition, 
                    int childPosition) { 
                // TODO Auto-generated method stub  
                return true; 
            } 
             
        }; 
        //设置该窗口显示列表  
        setListAdapter(adapter); 
    } 
}

Android开发学习之LauncherActivity开发启动的列表的更多相关文章

  1. Android:日常学习笔记(8)———开发微信聊天界面

    Android:日常学习笔记(8)———开发微信聊天界面 只做Nine-Patch图片 Nine-Patch是一种被特殊处理过的PNG图片,能够指定哪些区域可以被拉升,哪些区域不可以.

  2. android开发学习---linux下开发环境的搭建&& android基础知识介绍

    一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  3. Android再学习-便签开发小结-20141119

    这几天的便签开发,首先遇到的问题就是数据库操作问题.现在已经可以读写数据库了,并能将数据放在正确的位置显示. 专门建立了一个数据库操作的包,命名为"...database".新建一 ...

  4. <WP8开发学习笔记>动态修改启动时导航的第一个页面(如登录前启动页为LoginPage,登录后变为MainPage)

    很多时候我们需要在启动程序的时候根据状态改变初始导航页面,比如程序在启动的时候判断用户是否登录, 如果未登录则跳转到LoginPage.xaml否则跳转到MainPage界面. 这时候就要分析程序的启 ...

  5. Android Activity学习笔记——Activity的启动和创建

    http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html 最近学习Android相关知识,感觉仅仅了解Activity几个生命周期函 ...

  6. JavaWeb开发学习(一)-JavaWeb开发概述

    1.Web相关概念 Web程序也就是一般所说的网站,由服务器.客户端浏览器以及网络组成.Web程序的好处是使用简单,不需要安装.学习,有一台电脑.一根网线就可以使用.Web程序不是一般意义上的网站.网 ...

  7. python开发学习-day02(元组、字符串、列表、字典深入)

    s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  8. 吴裕雄--天生自然 R语言开发学习:集成开发环境\工具RStudio的安装与配置

  9. 吴裕雄--天生自然 JAVA开发学习:Java 开发环境配置

随机推荐

  1. XCode 项目配置说明

    初学XCode最让人头疼的就是项目各属性设置,各种不解,这里做个总结: 项目配置: 基本项(Basic) 1.Architectures(指令集)——设置你想支持的指令集,目前ios的指令集有以下几种 ...

  2. Firebird/InterBase内置函数使用说明

    Firebird/InterBase内置函数使用说明(转自:圣域天堂) 2008-10-12 20:56 加*号为FB2.0加入的函数 整理:剑雷(jianlei) 2006-10-13 1. COU ...

  3. Android ViewDragHelper源码解析

    在自定义ViewGroup的过程中,如果涉及到View的拖动滑动,ViewDragHelper的使用应该是少不了的,它提供了一系列用于用户拖动子View的辅助方法和相关的状态记录,像Navigatio ...

  4. redis的图形界面管理工具:phpredisadmin

    大部分人都知道redis是一款用在缓存服务器上的软件,它与memcache类似,都可以存储海量的数据,用在大访问量的web网站.聊天记录存放等方面,但是又与memcache不同: 1.缓存数据可以持久 ...

  5. insert into select * from 锁表

    mysql[192.168.11.187] processid[249] root@localhost in db[zjzc] hold transaction time 197 112069858, ...

  6. Linux中修改环境变量及生效方法

    在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”. 要让刚才的修改马上生 ...

  7. 一个sql导致temp表空间爆掉

    Buffer sort引发的血案 今天遇到的一个问题,在线系统上,有两张表,test1大概50G,test2大概200G,需要查询出来test1表中部分记录,并且这些记录不存在test2表中.于是就写 ...

  8. bzoj1878

    像我这种蒟蒻这道题从在线算法思考基本毫无思路 但是发现题目中只涉及到询问而不涉及到修改,这类题目一般都是离线算法大概 考虑到这题为什么不能直接区间求值,因为区间中同色点会被重复计算(废话) 下面我们就 ...

  9. android学习——项目的目录结构

    学习开发之前要了解工程目录下的文件夹下文件的用意,是以HelloWorld为例: 1.HelloWorld项目的目录结构 1.1.src文件夹 1.2.gen文件夹 1.3.Android 2.1文件 ...

  10. HDOJ -- 1015

    1.DFS #include<cmath> #include<cstdio> #include<cstdlib> #include<string> #i ...