1. ListView控制绑定数据与获取ListView点击的ID
List<Person> persons = personService.getScrollData(0, 5);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for(Person person : persons){
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("id", person.getId());
item.put("name", person.getName());
item.put("amount", person.getAmount());
data.add(item);
}
//如果业务层返回的是Cursor,则可使用SimpleCursorAdapter适配器 ,参考代码如下面蓝色部分,精简很多:
//注SQLlite建议表的主键采用:”_id”,如果不是,在查找的SQL语句可以用别名把其中的id字段改为_id,否则布署时会报错
/***************************************
Cursor cursor = personService.getCursorScrollData(0, 5);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor,
new String[]{"_id", "name", "amount"}, new int[]{R.id.id, R.id.name, R.id.amount});
listView.setAdapter(adapter);
//监听事件
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListView lView = (ListView)parent;
Cursor data = (Cursor)lView.getItemAtPosition(position); //取得该位置数据
int personid = data.getInt(data.getColumnIndex("_id"));
Toast.makeText(MainActivity.this, personid+"", 1).show();//第2个须为字符串
}
});
/*********************************************
//R.layout.item 为item所在界面
//第3和第4个参数,为对应的值赋给另一个,类似from…to…
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,
new String[]{"id", "name", "amount"}, new int[]{R.id.id, R.id.name, R.id.amount});
listView.setAdapter(adapter);
//为ListView控制添加点击监听,获取点击的item的id
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListView lView = (ListView)parent;
HashMap<String, Object> item = (HashMap<String, Object>)lView.getItemAtPosition(position);
Toast.makeText(MainActivity.this, item.get("id").toString(), 1).show(); //提示id
}
});
2. 音乐播放时,有电话呼入时,事件的处理
@Override
protected void onPause() {//如果突然电话到来,停止播放音乐
if(mediaPlayer.isPlaying()){
position = mediaPlayer.getCurrentPosition();//保存当前播放点
mediaPlayer.stop();
}
super.onPause();
}
@Override
protected void onResume() {
if(position>0 && filename!=null){//如果电话结束,继续播放音乐
try {
play();
mediaPlayer.seekTo(position); //恢复至先前的播放位置
position = 0;
} catch (IOException e) {
Log.e(TAG, e.toString());
}
}
super.onResume();
}
Android常用方法
最新推荐文章于 2021-12-29 14:36:19 发布