以动态列表配置选项(ListActivity与Menu整合技巧)
来源:互联网 发布:淘宝客清退 编辑:程序博客网 时间:2024/06/12 01:27
package irdc.ex04_20;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class EX04_20 extends ListActivity
{
private int selectedItem = -1;
private String[] mString;
/*
* final方法
将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,
不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,
但是继承仍然可以继承这个方法,也就是说可以直接使用。
另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,
而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,
然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,
可能反而会影响效率,所以你要慎用final进行方法定义。
final类
当你将final用于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的
,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。
对于final类中的成员,你可以定义其为final,也可以不是final。
而对于方法,由于所属类为final的关系,自然也就成了final型的
。你也可以明确的给final类中的方法加上一个final,但这显然没有意义。
*/
static final private int MENU_LIST1 = Menu.FIRST;
static final private int MENU_LIST2 = Menu.FIRST+1;
/*
* ArrayAdapter 接受一个数组或者List作为参数来构建显示ListView
* 其他常用的Adapter还有ArrayAdapter ,SimpleAdapter,CursorAdapter
*/
private ArrayAdapter<String> mla;
//数组适配器
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
/*
* 当列表被选中时,调用这个方法. 子类需要重写
* 当他们需要从选中的条目中获得数据时 ,子类能够调用getListView().getItemAtPosition(position)
*/
/*
* Parameters
l The ListView where the click happened
v The view that was clicked within the ListView
position The position of the view in the list
id The row id of the item that was clicked
*/
// TODO Auto-generated method stub
selectedItem = position;
Toast.makeText(EX04_20.this,
mString[selectedItem],
Toast.LENGTH_SHORT).show();//以toast的方式弹出被选项
super.onListItemClick(l, v, position, id);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
/*初始化选择菜单.可以把菜单项放到菜单中
*当你需要为目录增加条目时:就实现Activity的onOptionsItemSelected(MenuItem)方法
*/
// TODO Auto-generated method stub
/* menu群组ID */
int idGroup1 = 0;
/* The order position of the item */
int orderMenuItem1 = Menu.NONE;
int orderMenuItem2 = Menu.NONE+1;
menu.add(idGroup1, MENU_LIST1, orderMenuItem1, R.string.str_menu_list1);
menu.add(idGroup1, MENU_LIST2, orderMenuItem2, R.string.str_menu_list2);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
/*
* 显示选择 的项目列
*/
{
// TODO Auto-generated method stub
switch(item.getItemId())
{
case (MENU_LIST1):
mString = new String[]
{ getResources().getString(R.string.str_list1),
getResources().getString(R.string.str_list2),
getResources().getString(R.string.str_list3),
getResources().getString(R.string.str_list4) };
mla = new ArrayAdapter<String>(EX04_20.this, R.layout.main, mString);
EX04_20.this.setListAdapter(mla);
break;
case (MENU_LIST2):
mString = new String[]
{ getResources().getString(R.string.str_list5),
getResources().getString(R.string.str_list6),
getResources().getString(R.string.str_list7),
getResources().getString(R.string.str_list8) };
mla = new ArrayAdapter<String>(EX04_20.this, R.layout.main, mString);
EX04_20.this.setListAdapter(mla);
break;
}
return super.onOptionsItemSelected(item);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTextView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, EX04_20</string>
<string name="app_name">EX04_20</string>
<string name="str_list1">最后一战:星环战役</string>
<string name="str_list2">火影忍者:破碎的羁绊</string>
<string name="str_list3">吉他英雄:世界巡回 </string>
<string name="str_list4">极速快感:卧底风云</string>
<string name="str_list5">C++语言</string>
<string name="str_list6">Java语言</string>
<string name="str_list7">PHP语言</string>
<string name="str_list8">Basic语言</string>
<string name="str_menu_list1">显示列表1</string>
<string name="str_menu_list2">显示列表2</string>
</resources>
- 以动态列表配置选项(ListActivity与Menu整合技巧)
- 以动态列表配置选项(ListActivity与Menu整合技巧)
- ListActivity与Menu的整合
- ListActivity与Menu
- ListActivity中的自定义列表配置选项『Android系列12』
- 动态下拉选项列表
- 列表视图(ListView)和 ListActivity
- php.ini 配置选项列表
- Menu菜单(一)——点击Menu中的选项后,在该页面又出现一个新的列表菜单
- android学习--视图列表(ListView和ListActivity)
- 创建选项菜单(Options Menu)
- dwr动态装载下拉列表框选项
- dwr动态装载下拉列表框选项
- jQuery动态添加下拉列表选项
- 动态添加/删除Spinner列表选项框
- 动态添加/删除Spinner列表选项框
- ListActivity实现列表学习笔记
- 通过继承ListActivity实现列表
- QT 类及其实现效果(7)--坐标,svg,alpha
- .一个悲催的程序员的悲催的爱情故事
- vs2010环境下将Win32控制台应用程序,改为Win32项目
- java类加载器
- linux 下查看文件个数及大小
- 以动态列表配置选项(ListActivity与Menu整合技巧)
- spring 的OpenSessionInViewFilter简介
- 第一个Qt程序
- C++中的 new / delete
- ExtJs笔记
- Print a PDF Document in Java
- 舍伍德算法
- SVN Client API的.net 接口 SharpSvn介紹
- Spring 管理hibernate中的事务1(手动开关事务,Aop拦截)