0

setOnClickListener() 方法和 onClick() 方法在点击过程中实际做了什么

events.为什么在点击事件期间需要这两种方法。

请详细说明。

4

4 回答 4

0

onClickListener() 方法可让您处理“点击事件”。您可以在此方法下方有语句,当您单击其中一个对象时会发生这些语句。

您可以访问此处以获取有关这些方法的更多知识。

于 2012-07-10T22:44:19.347 回答
0

@pronay biswas 当您想解释此类事情时,只需将鼠标光标悬停在该文本上,就会出现一个弹出对话框,如果您使用的是 eclipse,它将告诉您有关 android 中的特定事情

setOnClickListener 做什么

void android.view.View.setOnClickListener(OnClickListener l)



public void setOnClickListener (View.OnClickListener l) 
Since: API Level 1 
Register a callback to be invoked when this view is clicked. If this view is not 
clickable, it becomes clickable.

Parameters
  The callback that will run 

android.view.View.OnClickListener

// working of View.OnClickListener 


    public static interface 
    View.OnClickListener
    android.view.View.OnClickListener 
    Known Indirect Subclasses 
    CharacterPickerDialog, KeyboardView, QuickContactBadge 
    CharacterPickerDialog Dialog for choosing accented characters related to a base character.  
    KeyboardView A view that renders a virtual Keyboard.  
    QuickContactBadge Widget used to show an image with the standard QuickContact badge and on-click behavior.  



Class Overview
Interface definition for a callback to be invoked when a view is clicked. 

// OnClickListener

@Override


Specified by: onClick(...) in OnClickListener
public abstract void onClick (View v) 
Since: API Level 1 
Called when a view has been clicked.

Parameters
v  The view that was clicked.  
于 2012-07-11T04:05:22.393 回答
0

如果使用onClick()XML 中定义的函数,则必须将onClick()方法放在当前 Activity 中。例如:

主.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
<Button
   android:id="@+id/button1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:onclick:doSomething() />
</LinearLayout>

主.java

  public class Main extends Activity {

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
      }

     public void doSomething(){
     //do something here
     }
  }

以上只会在 Main.Java 中搜索 doSomething

如果您正在使用片段,这一点很重要,因为设置 onclick 侦听器(使用setOnClickListener())的编程方式可能会使用处理片段中的点击的方法onCreateView(),如果从 XML 中引用它就不会被找到。

于 2012-07-10T22:48:57.040 回答
0

onClickListener是一个允许您使用该onClick方法的接口。这是一个链接,将更详细地描述它。基本上,您使用setOnClickListener来实现您创建的方法。

链接在这里:

http://developer.android.com/guide/topics/ui/ui-events.html

于 2012-07-10T22:49:29.530 回答