setOnClickListener

时间:2016-05-26 16:05:42

标签: android

我是Android新手,我正在尝试通过单击按钮更改文本但我在第三行收到错误“无法解析setOnClickListener”。我可以解决此问题吗?

  Button b=(Button)findViewById(R.id.button);
        b.setOnClickListener(
                new Button.setOnClickListener(){   //error in this line
                    public void onclick(View v){
                        TextView t=(TextView)findViewById(R.id.textView2);
                        t.setText("text changed!");
                    }
                }
        );

3 个答案:

答案 0 :(得分:4)

您必须使用View

Button b=(Button)findViewById(R.id.button);
b.setOnClickListener(View.OnClickListener() {
   @Override
   public void onClick(View v) {
      TextView t=(TextView)findViewById(R.id.textView2);
      t.setText("text changed!");
  }
});

答案 1 :(得分:2)

你可以尝试:

TextView t;
Button b;
@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.yourlayout);
   t=(TextView)findViewById(R.id.textView2);
   b=(Button)findViewById(R.id.button);
   b.setOnClickListener(View.OnClickListener() {
        @Override
        public void onClick(View v) {
        t.setText("text changed!");
        }
   });
}

您也可以发布Xml,以供参考

答案 2 :(得分:2)

如果要在setOnClickListener中搜索单击侦听器,则应使用Button.OnClickListener(),但参数必须是new的实例,因此必须使用{ {1}}创建该实例。 Beacuase Button.OnClickListenerinterface,您还必须像您一样实施public void onClick(View v)

请试试这个:

Button b=(Button)findViewById(R.id.button);
b.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        TextView t=(TextView)findViewById(R.id.textView2);
        t.setText("text changed!");
    }
});