Android 多个对象共用一个onClick事件,如何得到触发该事件的是哪个对象
有没有相应的函数实现这个功能?

解决方案 »

  1. public void onClick(View v) {
    System.out.println(v.getId() == R.id.button);  
    你试试这个 有用没
      

  2. 情况是这样的:
    现在有两个spinner,并且有两个添加按钮,按钮触发的事件是弹出一个对话框,输入相应的内容,点击确定就把输入的内容添加到相应的spinner中。
    现在的问题是,点击两个添加按钮都是用的一个触发事件,如何才能区分出点击的哪个按钮,并把输入的内容添加到相应的spinner中呢?
      

  3. 你那个activity实现view.onclick、在activity中实现onclick(view view)、每个view对应的setonclicklistener(this)(即参数为this而不是用之前的某个listener)
    这里的大小写你自己改去,手机切换大小写太麻烦了
      

  4. 另外,要获取按的是哪个,在activity的onclick方法中判断view即可
      

  5. 我是这么做的:
    //添加好友
            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);
    }
      

  6. Button button1=find...
    Button  button2=find...
    onClick(View v){
    if(v=button1){
    log.i("","");
    }if(v=button2){
    log.i("","");
    }
    }
      

  7. 让activity继承OnClickListener接口,再onClick(View v){
    if(v.getId() == R.id.button1){
    log.i("","");
    }if(v.getId()==R.id.button2){
    log.i("","");
    }
    }
      

类似问题 »