Ⅰ 在android中怎样给整个页面设置监听事件
您可以类似这样,先实例化子页面中的Button控件,然后将实例化后的控件绑定监听事件 View view=LayoutInflater.from(context).inflate(R.layout.abc_action_bar_view_list_nav_layout,null); Button button= (Button) view.findViewById(R.id.action_bar); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //写上点击后要执行的事件 } }); 当然了,您要在不同页面实现不同的功能的话,您可以将以上代码写在viewPager.setOnPageChangeListener的滚动回调方法当中进行页面滚动的判断,从而执行不同的点击事件。希望能帮到您,如果还有什么问题,欢迎您继续追问。谢谢。
Ⅱ Android 监听复制、剪切、粘贴事件,粘贴后直接进行接口请求
在我们的项目开发中,有时会遇到这样的需求:当用户在输入框中进行了粘贴操作,直接就使用粘贴的内容进行服务端接口的请求,不需要用户再点击确认后才去进行接口请求。
对于这种情况,可以想到两种方式实现:
其实以上两种业务实现方式都涉及到了监听复制、剪切、粘贴事件。
1 - 通过剪切板监听。
2 - 通过自定义EditText,重写onTextContextMenuItem() 方法实现监听。
剪切板的实现其实在官方文档中找到相应的内容。
我这里只监听了粘贴事件。如果有需要,可以自行拓展回调接口。
通过这种方法监听有点要注意,那就是你在回调中是获取不到复制、剪切、粘贴的文本内容的。想要获取到复制、剪切的文本还是需要通过监听剪切板去获取。
粘贴的内容的获取 其实可以在Activity中添加个标记,在TextWatcher中判断此标记。这样可以间接的获取到粘贴内容。因为在onTextContextMenuItem(),自定义的回调先于super.onTextContextMenuItem(id)执行。这只加单写了EditText中内容为空的情况,如果有内容,那么自己去进行字符串的逻辑操作吧。我这里就不写了。 实测有效哦。
OK,本章内容到此就结束了。如果大家有什么更好的方法,或者觉得我的方法有啥可以改进的地方,欢迎评论留言哦。
Ⅲ android里能为下拉菜单设置监听事件么
Spinner组件的主要功能是用于进行下拉列表显示的功能,当用户选中下拉列表中的某个选项之后可以使用Spinner类中提供的setOnItemClickListener()方法进行监听。
下拉菜单监听范例:
packagecom.richard.onitemselectedlistener;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemSelectedListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;
{
privateSpinnercity=null;//定义下拉列表框
privateSpinnerarea=null;//定义下拉列表框
privateString[][]areaData=newString[][]{//定义联动菜单项
{"东城","西城","朝阳","大兴","平谷"},//第一级子选项
{"黄浦","杨浦","闵行"},//第二级子选项
{"广州"}};//第三级子选项
privateArrayAdapter<CharSequence>adapterArea=null;//下拉列表内容适配器
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);//父类onCreate()
super.setContentView(R.layout.activity_main);//调用布局管理器
this.city=(Spinner)super.findViewById(R.id.city);//取得组件
this.area=(Spinner)super.findViewById(R.id.area);//取得组件
this.city.setOnItemSelectedListener(
newOnItemSelectedListenerImpl());//设置监听器
}
{
@Override
publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,
intposition,longid){//选项选中时触发
MainActivity.this.adapterArea=newArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,
MainActivity.this.areaData[position]);//实例化列表项
MainActivity.this.adapterArea.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);//设置下拉列表显示风格
MainActivity.this.area
.setAdapter(MainActivity.this.adapterArea);//设置数据
}
@Override
publicvoidonNothingSelected(AdapterView<?>adapterView){//没有选项时触发
}
}
@Override
(Menumenu){
//Inflatethemenu;.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}
Ⅳ 怎么样才能让android中所弹出的对话框显示出复选框所选择的内容
AlertDialog.Builder有现成的API可以实现显示复选框的内容。
1.创建AlertDialog.Builder并设置数据源
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("复选框"); //设置对话框标题
builder.setIcon(android.R.drawable.ic_menu_more); //设置对话框标题前的图标
final String[] data = getResources().getStringArray(R.array.radio); //通过resources 得到strings.xml中的字符串数组
boolean[] state = new boolean[data.length];
for(int i=0; i<data.length; i++){
state[i] = sboolean.get(i); //将状态集合中的数据取出来,下次选择时候会默认选中
}
2.注册点击事件,并记录复选的数据
/*
* 第一个参数是,数据原,可以是数组,也可以传strings.xml那的字符串ID,但是建议用数组,因为多选监听返回的是数组的标下
* 第二个参数是,默认的选中位置,是个boolean数组,对应item的位置
* 第三个是列表点击监听事件
*/
builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//注册单选择监听事件
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"你选择了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]); //选择的时候要保存起来
}else{
Toast.makeText(context,"你取消了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]); //取消选中的时候要删除掉
}
sboolean.put(which, isChecked); //每次选择都要记录下这个item的状态
}
});
3.增加确定和取消按键
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了确定,选择的是: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});
4.设置dialog的相关参数,并弹出
builder.setNegativeButton("取消", null); //取消不做任何处理
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();