Android 多个对象共用一个onClick事件,如何得到触发该事件的是哪个对象

jiaojiao_huihui 2011-11-13 05:19:00
Android 多个对象共用一个onClick事件,如何得到触发该事件的是哪个对象


有没有相应的函数实现这个功能?
...全文
1180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaojiao_huihui 2011-11-14
  • 打赏
  • 举报
回复
我是这么做的:
//添加好友
LayoutInflater li = LayoutInflater.from(this);
final View view = li.inflate(R.layout.addfriend, null);
mButton13.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
onShowPromptDialog(view);
}
});

//添加好友群
mButton14.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
onShowPromptDialog1(view);
}
});

}

public void onShowPromptDialog(View v){
//inflate需要显示到Dialog里的View对象
LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.addfriend, null);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("输入好友名称");
builder.setIcon(R.drawable.icon);
//之前inflate的View 放到dialog中
builder.setView(view);
builder.setPositiveButton("确定", this);
builder.setNegativeButton("取消", this);
builder.create().show();
}
public void onShowPromptDialog1(View v){
//inflate需要显示到Dialog里的View对象
LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.addfriend, null);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("输入群名称");
builder.setIcon(R.drawable.icon);
//之前inflate的View 放到dialog中
builder.setView(view);
builder.setPositiveButton("确定", this);
builder.setNegativeButton("取消", this);
builder.create().show();
}

}

class SpinnerOnSelectedListener implements OnItemSelectedListener
{
//当用户选定了一个条目时,就会调用该方法
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,
long id) {
String selected = adapterView.getItemAtPosition(position).toString();
System.out.println(selected);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
System.out.println("nothingSelected");
}
}


@Override
public void onClick(DialogInterface dialog, int which) {
if(which == Dialog.BUTTON_POSITIVE){
AlertDialog ad = (AlertDialog) dialog;
EditText t = (EditText) ad.findViewById(R.id.editText111);
Toast.makeText(this, t.getText().toString(), Toast.LENGTH_LONG).show();
String additem = t.getText().toString();
//System.out.println(v.getId() == R.id.button);

add(additem);//可以成功的添加好友,但是同时把好友群也添加到好友列表里面了
}
}


private void add(String additem) {
this.additem = additem;
list.add(additem);
}
private void add1(String additem1) {
this.additem = additem1;
list1.add(additem);
}
网络咖啡 2011-11-14
  • 打赏
  • 举报
回复
判断v参数啊
fmworld 2011-11-14
  • 打赏
  • 举报
回复
让activity继承OnClickListener接口,再onClick(View v){
if(v.getId() == R.id.button1){
log.i("","");
}if(v.getId()==R.id.button2){
log.i("","");
}
}
a-white-lie 2011-11-14
  • 打赏
  • 举报
回复
Button button1=find...
Button button2=find...
onClick(View v){
if(v=button1){
log.i("","");
}if(v=button2){
log.i("","");
}
}
telmochan 2011-11-14
  • 打赏
  • 举报
回复
另外,要获取按的是哪个,在activity的onclick方法中判断view即可
telmochan 2011-11-14
  • 打赏
  • 举报
回复
你那个activity实现view.onclick、在activity中实现onclick(view view)、每个view对应的setonclicklistener(this)(即参数为this而不是用之前的某个listener)
这里的大小写你自己改去,手机切换大小写太麻烦了
jiaojiao_huihui 2011-11-13
  • 打赏
  • 举报
回复
情况是这样的:
现在有两个spinner,并且有两个添加按钮,按钮触发的事件是弹出一个对话框,输入相应的内容,点击确定就把输入的内容添加到相应的spinner中。
现在的问题是,点击两个添加按钮都是用的一个触发事件,如何才能区分出点击的哪个按钮,并把输入的内容添加到相应的spinner中呢?
zhoujiaolongde 2011-11-13
  • 打赏
  • 举报
回复
public void onClick(View v) {
System.out.println(v.getId() == R.id.button);
你试试这个 有用没

80,439

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧