Android:许多按钮均使用相同的OnClickListener

时间:2019-01-21 07:58:33

标签: android-studio onclicklistener android-button

我试图在一个片段上的许多按钮上设置相同的OnClickListener。

因此,我试图将监听器置于诸如此类的类之上

    19/01/21 08:51:35 ERROR org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator 91: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 277, Column 36: Unknown variable or type "agg_value25"
/* 001 */ public Object generate(Object[] references) {
/* 002 */   return new GeneratedIterator(references);
/* 003 */ }
/* 004 */
/* 005 */ final class GeneratedIterator extends org.apache.spark.sql.execution.BufferedRowIterator {
/* 006 */   private Object[] references;
/* 007 */   private scala.collection.Iterator[] inputs;
/* 008 */   private boolean agg_initAgg;
/* 009 */   private org.apache.spark.sql.execution.aggregate.HashAggregateExec agg_plan;
/* 010 */   private org.apache.spark.sql.execution.UnsafeFixedWidthAggregationMap agg_hashMap;
/* 011 */   private org.apache.spark.sql.execution.UnsafeKVExternalSorter agg_sorter;
/* 012 */   private org.apache.spark.unsafe.KVIterator agg_mapIter;
...
/* 277 */       bhj_rowWriter3.write(0, agg_value25);

但是,我要保存按钮的文本。 (button.getText())。

但是在...部分,

因为thisListener没有巫婆按钮,所以它只能获取视图,

我无法调用getText()。 v.getText()不存在。

例如,我在...部分中尝试了以下代码,

android:hardwareAccelerated="true"

在第一行中,因为thisListener可以,所以无法调用Button.getText()

没有按钮信息。

有没有没有实现每个监听器的10〜20个按钮的方法?

1 个答案:

答案 0 :(得分:1)

您可以这样定义一个侦听器对象:

  View.OnClickListener thisListener = new View.OnClickListener() {
    public void onClick(View v) {
        Button button = (Button) v;
        switch (v.getId()) {
            case R.id.button1:
                 preferenceEditor.putString("User Insurance", button.getText());
                 preferenceEditor.commit();
                 activity.fragChanger(4); 
                 break;
            case R.id.button2:
                // 
                break;
            //...............
        } 
    }
  }

并将此侦听器设置为所有按钮:

button1.setOnClickListener(thisListener);
button2.setOnClickListener(thisListener);
..........................................