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. 双系统格式化硬盘后装XP遇到grub rescue的问题

    好奇于深度的Deepin系统,给老电脑装了xp和deepin双系统.无奈07年的机子带Deepin,实在是太卡了.正好想给硬盘重新分区,直接将硬盘格式化,重装了xp.于是,问题来了,开机显示: GRU ...

  2. jQuery滚动条插件 – jquery.slimscroll.js

    jquery.slimscroll.js插件是一个支持把内容放在一个盒子里面,固定一个高度,超出的则使用滚动.jquery.slimscroll.js不仅可以定义高度.宽度,还可以定义位置.滚动条大小 ...

  3. Word续上表

    选中表格的下半部分(全部下半部分),然后按ctrl+shift+enter,这样就换行了.

  4. 3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网

    首先说说无线上网有哪几种形式? WIFI, GPRS, CDMA 3G无线上网 1>wifi全称wireless fidelity,是当今使用最广的一种无线网络传输技术.实际上就是把有线网络信号 ...

  5. Android 模拟器上的127.0.0.1 localhost

    调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlStrin ...

  6. C++中new和不new的区别

    我们都知道C++中有三种创建对象的方法,如下: 复制代码代码如下: #include <iostream>using namespace std; class A{private:    ...

  7. 【CF】207 Div.1 B.Xenia and Hamming

    这题目一看很牛逼,其实非常easy.求求最小公倍数,最大公约数,均摊复杂度其实就是O(n). /* 356B */ #include <iostream> #include <str ...

  8. mysql 限制并发select patch

    限制并发select的patch,代码量很少,主要是为了学习mysql的源码,yy一下. 增加两个全局控制变量: thread_limit_min thread_limit_max 增加一个条件变量: ...

  9. oracle命中率模型计算

    命中率模型是在owi之前比较常用的一种诊断性能问题的方法,通过命中率的计算,发现系统中的一些设置是否合理,当命中率不高的时候,通过调整一些参数和设置,提高命中率,有效的提高系统的性能和吞吐量.但当系统 ...

  10. WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞

    漏洞名称: WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞 CNNVD编号: CNNVD-201309-388 发布时间: 2013-09-24 更新 ...