上节课我们小试牛刀了美团美食列表,当我们点击美团时列表都会跳转到另一个Activity中,就是另一个页面去看详细信息,这里用到了非常重要的两点,一点是OnItemClickListener和Intent,第一个简单明了就是组件的点击事件,第二个是页面跳转常用的,这里我们先讲这一种用法。
首先我们有一个MainActivity.class,之后我们定义一个跳转后的页面例如:bingguo.class,跳转的代码是:
Intent intent=new Intent();
intent.setClass(MainActivity.this, bingguo.class);
MainActivity.this.startActivity(intent);
然后我们给bingguo.class绑定布局管理器。
public class bingguo extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bingguo);
}
}
之后定义你要显示xml布局。为了简单起见这里就不在定义bingguo的配置文件,读者可以自行创意
然后就是关键的时间监听机制。
this.datalist.setOnItemClickListener(new ListViewListener());
}
private class ListViewListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long id) {
Map<String,String> map=(Map<String,String>)MainActivity.this.simpleadapter.getItem(position);
String title=map.get("title");
if(title.equals("冰果彩虹")){
Intent intent=new Intent();
intent.setClass(MainActivity.this, bingguo.class);
MainActivity.this.startActivity(intent);
}
在之前代码中加上这几句话,你就会发现你的程序已经捕捉到了冰果彩虹卖家的信息,我们来运行试试:
接下来我们定义OnItemLongClickListener也就是长按按钮,这里我们要学到对话框,在代码中加入
this.datalist.setOnItemLongClickListener(new delete();监听器再加入事件处理。
private class delete implements OnItemLongClickListener{
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
Map<String,String> map=(Map<String,String>)MainActivity.this.simpleadapter.getItem(position);
String title=map.get("title");
new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.warm).setTitle(title).setMessage("确定要删除吗?")
.setPositiveButton("确定",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//在这里添加事件
Toast toast = Toast.makeText(MainActivity.this, "已删除!", Toast.LENGTH_SHORT);
toast.show();
}
}).setNeutralButton("查看详情", null).setNegativeButton("取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create().show();
return false;
}
}
加入弹出删除对话框功能,可以自己定义图标,按钮。效果如下: