如何确定在android上按下哪个按钮

时间:2010-08-05 06:13:57

标签: android

我需要知道,如何识别,按下哪个按钮。 就像我有两个按钮,比如按钮1和按钮2,并且它们都执行相同的方法,比如说method(),如何确定按下哪个按钮?

此致

5 个答案:

答案 0 :(得分:44)

最优雅的模式:

public void onClick(View v) {
switch(v.getId())
{
case R.id.button_a_id:
// handle button A click;
break;
case R.id.button_b_id:
// handle button B click;
break;
default:
throw new RuntimeException("Unknow button ID");
}

通过这种方式调试它会更加简单,并确保您不会错过处理任何点击。

答案 1 :(得分:5)

我有10个按钮执行相同的方法C.test <- function (object) { model <- deparse(substitute(object)) by.factor <- as.factor(1:object$rank) n <- length(object$model[,1])/object$rank k <- object$rank var <- tapply(object$model[,1], rep(1:k, each = n), var) int <- interaction(object$model[,-1], lex.order = TRUE) f.int <- factor(int, levels = unique(int)) names(var) <- levels(f.int) mean <- tapply(object$model[,1], rep(1:k, each = n), mean) C <- max(var)/sum(var) group <- names(var)[which(var == max(var))] method <- "Cochran test of homogeneity of variances" alt <- paste("Group", group, "has outlying variance") f <- (1/C - 1)/(k - 1) p <- 1 - pf(f, (n - 1) * (k - 1), (n - 1)) * k pval <- 1 - p result <- list(statistic = c(C = C), parameter = c(n = n, k = k), alternative = alt, p.value = pval, method = method, estimate = round(var, 4), mean = mean, var = var, data.names = model) class(result) <- "htest" return(result) } ,我使用此代码获取点击按钮的文字:

updateText()

答案 2 :(得分:4)

或者......你可以在xml代码中放一个android:onClick =“foo” 按钮,并使用签名在java上定义方法。在 - 的里面  方法foo,获取id并将其与您需要的ID进行比较

public void foo(View v){

if (v.getId() == R.id.yourButton){

}

else if (v.getId() == R.id.nextButton){

}

}

答案 3 :(得分:1)

如果通过“执行相同的方法”意味着他们的OnClickListener,那么你必须引用传递给它的参数。

public void onClick(View v) {
    if(v==btnA) {
       doA();
    } else if(v==btnB) {
       doB();
    }
}

答案 4 :(得分:-1)

好的解决方案

if (yesButton.getId() == ((Button) v).getId()){

  // remainingNumber
 }

else if (noButton.getId() == ((Button) v).getId()) 
{
    // it was the second button
}