为什么onClick方法获取视图作为参数?

时间:2018-09-30 01:25:38

标签: android

我是android系统领域的新手,但是我有一些Java知识,根据我在Java中的了解,我们将参数传递给要使用的方法,而此方法onClick(View v)似乎绝对没有获得任何参数。 / p>

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include "execute.h"
#include "parser.h"

#define ReadFd 0
#define WriteFd 1

void outred(char ** args, char * filename, int pos){

   pid_t pid;
  int fd[2];//array of two for each file descriptor

  int buffer_size = BUFFSIZE;
  int status;

  //only want tokens before the ">" metacharacter
  int i;
  for(i = 0; i < pos; i++;){
    args[i] = args[i];
  }
  args[i] = strtok(NULL," ");

pid = fork();

  if(pid == 0){//If in child process execute the cmd to write to the file

 close(fd[ReadFd]);//child recieves fds from parent
 fd[WriteFd] = creat(filename, 0644);//create file

 dup2(fd[WriteFd],fileno(stdout));//duplicate write end to stdout, output to stdout goes to write end instead

 close(fd[WriteFd]);//new execution will write to stdout which is being redirected to fd[WriteFd] so it can be closed

    execvp(args[0],args);//execute cmd on args

  }

  if(pid < 0){
    perror("ERROR: output redirect failed");//no execution 
    exit(0);
    }

  if(pid > 0){
    close(fd[WriteFd]);    
    wait(&status);

  }
}

为什么不呢?

public interface OnClickListener {
    /**
     * Called when a view has been clicked.
     *
     * @param v The view that was clicked.
     */
    void onClick(View v);
}

我还想知道参数是如何传递到那里的...例如

public interface OnClickListener {
    /**
     * Called when a view has been clicked.
     *
     * @param v The view that was clicked.
     */
    void onClick();
}

何时以及如何在onClick(View v)中将rollButton作为参数传递的……确切发生了什么,谢谢。

1 个答案:

答案 0 :(得分:0)

我了解您的任务

要知道如何使用所用的工具,必须先了解它的库

在android中,该按钮具有许多功能,可帮助您,但它并没有您要使用的位置,因此您必须每次都给他该位置(它称为view),以决定您在其中进行的活动

否则在xcode中,当您调用按钮

在按钮库上有一个视图,它声明自己是唯一的,因此 您无需为此决定视图

您的android解决方案

u可以执行您在下面编写的代码

或者您需要实现View.OnClickListener,它将自动解析活动(视图)

并使用onClick()进行活动

希望我能帮助您理解它而不是变得困难