Activity的使用
来源:互联网 发布:js点击事件 编辑:程序博客网 时间:2024/06/07 15:25
下面会主要介绍三种Activity的用法:
LauncherActivity的作用在于形成一个列表,点击列表项时,可产生相应的intent进入到其他的Activity界面。
既然是列表,我们当然需要一个适配器来设置列表项的内容,由于LauncherActivity的一个列表项和一个class相关联,所以才能达到点击一个列表项就启动一个Activity的功能。因此还需要一个class数组,用来放要启动的Activity。最后要重写intentForPosition()方法。
具体代码如下:
public class MainActivity extends LauncherActivity { //定义列表项显示的内容,最好为两个Activity的名称 String[] names = {"设置程序参数" , "查看星际兵种"}; //定义两个Activity对应的实现类 Class<?>[] clazzs ={PreferenceActivityTest.class , ExpandableListActivityTest.class}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this , R.layout.support_simple_spinner_dropdown_item, names); //设置该窗口列表所需的adapter setListAdapter(adapter); } //根据列表项来返回指定Acticity对应的intent @Override public Intent intentForPosition(int position){ return new Intent(MainActivity.this , clazzs[position]); }}
上面用到的两个Activity
ExpandableListActivityTest:
ExpandableListActivity的子类,用于显示一个可展开的列表窗口
PerferenceActivity的子类,用于显示一个设置选项参数并保存的窗口
res\xml\preferences.xml
<?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="选择铃声(测试RingtonePreference)" android:showDefault="true" android:key="ring_key" android:showSilent="true"></RingtonePreference> <PreferenceCategory android:title="个人信息设置组"> <EditTextPreference android:key="name" android:title="填写用户名" android:summary="填写您的用户名(测试EditTextPreference)" android:dialogTitle="您所使用的用户名为:"/> <ListPreference android:key="gender" android:title="性别" android:summary="选择性别(测试ListPreference)" android:dialogTitle="ListPreference" android:entries="@array/gender_name_list" android:entryValues="@array/gender_name_value"/> </PreferenceCategory> <PreferenceCategory android:title="系统功能设置组"> <CheckBoxPreference android:key="autoSave" android:title="自动保存进度" android:summaryOn="开启" android:summaryOff="关闭" android:defaultValue="true"/> </PreferenceCategory></PreferenceScreen>
PerferenceActivityTest.java
public class PreferenceActivityTest extends PreferenceActivity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); }}
ExpandableListActivityTest.java
public class ExpandableListActivityTest extends ExpandableListActivity { public void onCreate(Bundle savedInstanceState) { 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[][]{ {"狂战士","龙骑士","黑暗圣堂"}, {"小狗","刺蛇","飞龙","自爆飞机"}, {"机枪兵","护士","幽灵"} };<span style="white-space:pre"></span> //获取指定组位置,指定子列表项数据 @Override public Object getChild(int groupPosition, int childPosition) { return arms[groupPosition][childPosition]; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public int getChildrenCount(int groupPosition) { return arms[groupPosition].length; } private TextView getTextView(){ AbsListView.LayoutParams lp=new AbsListView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT,64); TextView textView=new TextView(ExpandableListActivityTest.this); textView.setLayoutParams(lp); textView.setPadding(36,0,0,0); textView.setTextSize(20); return textView; }<span style="white-space:pre"></span> //该方法决定每个子选项的外观 @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = getTextView(); textView.setText(getChild(groupPosition,childPosition).toString()); return textView; }<span style="white-space:pre"></span> //获取指定组位置处的组数据 @Override public Object getGroup(int groupPosition) { return armTypes[groupPosition]; } @Override public int getGroupCount() { return armTypes.length; } @Override public long getGroupId(int groupPosition) { return groupPosition; }<span style="white-space:pre"></span> //该方法决定每个组选项的外观 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 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; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } @Override public boolean hasStableIds() { return true; } };<span style="white-space:pre"></span>//设置该窗口显示列表 setListAdapter(adapter); }}
0 0
- Activity的使用
- activity-alias的使用
- activity-alias的使用
- activity-alias的使用
- activity-alias的使用
- 窗口Activity的使用
- activity-alias的使用
- activity-alias的使用
- activity-alias的使用
- Activity的使用
- activity-alias的使用
- Activity的生命周期使用
- Activity的使用
- activity-alias的使用
- activity-alias的使用
- activity-alias的使用
- 【android】Activity的使用
- Activity的生命周期的使用
- ZooKeeper安装配置
- Zookeeper命令操作
- SDUT数据结构实验之二叉树一:树的同构
- Java中的对象和类
- POJ2325
- Activity的使用
- Java——二分折半查找法
- POJ3616
- ios某一个屏幕支持旋转,其他不支持的方法
- MySQL Administrator
- Uncaught TypeError: Cannot read property 'width' of undefined
- 阅读Sofia-SIP源码 - su模块 - su_default_log.c/su_global_log.c
- Swift中网络单例类封装
- 构建ZooKeeper应用