Android 多个对象共用一个onClick事件,如何得到触发该事件的是哪个对象 Android 多个对象共用一个onClick事件,如何得到触发该事件的是哪个对象有没有相应的函数实现这个功能? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void onClick(View v) {System.out.println(v.getId() == R.id.button); 你试试这个 有用没 情况是这样的:现在有两个spinner,并且有两个添加按钮,按钮触发的事件是弹出一个对话框,输入相应的内容,点击确定就把输入的内容添加到相应的spinner中。现在的问题是,点击两个添加按钮都是用的一个触发事件,如何才能区分出点击的哪个按钮,并把输入的内容添加到相应的spinner中呢? 你那个activity实现view.onclick、在activity中实现onclick(view view)、每个view对应的setonclicklistener(this)(即参数为this而不是用之前的某个listener)这里的大小写你自己改去,手机切换大小写太麻烦了 另外,要获取按的是哪个,在activity的onclick方法中判断view即可 我是这么做的://添加好友 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); } Button button1=find...Button button2=find...onClick(View v){if(v=button1){log.i("","");}if(v=button2){log.i("","");}} 让activity继承OnClickListener接口,再onClick(View v){if(v.getId() == R.id.button1){log.i("","");}if(v.getId()==R.id.button2){log.i("","");}} 线程问题 error: expected '=', ',', ';', 'asm' or '__attribute__' before '==' token 打开COM问题? android如何发送中文短信(代码实现) 自定义Menu的背景有一个错误 手机摄像头preview出来的都是yuv420sp格式的吗? 蓝牙配对 关于Activity布局(计算器界面) android项目运行错误 Source not found android Studio遇到一些问题求大佬教 如何获取系统自带的xml标签属性? 如何在手机和电脑上通过蓝牙适配器相互传输文件
System.out.println(v.getId() == R.id.button);
你试试这个 有用没
现在有两个spinner,并且有两个添加按钮,按钮触发的事件是弹出一个对话框,输入相应的内容,点击确定就把输入的内容添加到相应的spinner中。
现在的问题是,点击两个添加按钮都是用的一个触发事件,如何才能区分出点击的哪个按钮,并把输入的内容添加到相应的spinner中呢?
这里的大小写你自己改去,手机切换大小写太麻烦了
//添加好友
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);
}
Button button2=find...
onClick(View v){
if(v=button1){
log.i("","");
}if(v=button2){
log.i("","");
}
}
if(v.getId() == R.id.button1){
log.i("","");
}if(v.getId()==R.id.button2){
log.i("","");
}
}