【问题标题】:I cannot run button that implement onclick listener on another class我无法在另一个类上运行实现 onclick 侦听器的按钮
【发布时间】:2017-07-21 23:09:15
【问题描述】:

谁能告诉我这个怎么做?

主要活动

MainActivity extends AppCompatActivity  {
    MyListener listener = new MyListener();

    Button b = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        b = (Button)findViewById(R.id.button);

        b.setOnClickListener(new MyListener(MainActivity.this));
    }
}

我的监听类

class MyListener implements View.OnClickListener{
    private Context context;

    @Override
    public void onClick(View view) {
        Toast.makeText(context, "You click me!", Toast.LENGTH_SHORT).show();
    }
}

另外,如果我在这里实现 Click listener,我会得到 MainActivity 需要声明为抽象或在 OnClick 上实现抽象方法

public class MainActivity extends AppCompatActivity implements View.OnClickListener 

与上述抽象/实现相同的错误

public class ActivityMain extends Activity implements View.OnClickListener {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    b.setOnClickListener(ActivityMain.this);

    @Override
    public void onClick (View view){
        Toast.makeText(ActivityMain.this, "You click me!", Toast.LENGTH_SHORT).show();
    }
  }

}

【问题讨论】:

  • 你到底想做什么?
  • 嗨 Salman Tariq,我想在单击另一个类上的按钮后显示 toast,但我遇到了几个问题。

标签: android android-layout android-fragments


【解决方案1】:

您不必实现View.OnClickListener

你可以这样做。

class MyListener implements View.OnClickListener{

    private Context context;

    public MyListener(Context context) {
        this.context = context;
    }

    @Override
    public void onClick(View view) {
        Toast.makeText(context, "You Click Me!", Toast.LENGTH_SHORT).show();
    }
}

另一个点击区域。

new MyListener(MainActivity.this).onClick(view);

你可以解决它。

【讨论】:

  • 柯六月您好,谢谢您的回答。请。检查上面我无法运行 toast MainActivity。这不是封闭类。
  • @JaysonJohn 嗨,JaysonJohn,你可以这样做。
  • 你好,克六月,它不好用。吐司在项目启动后运行,而不是在我单击按钮后运行。
  • @JaysonJohn 嗨,JaysonJohn,我修改了你的代码。你可以看看。
  • @JaysonJohn 很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多