我如何在同一 class 中的 onLongClick 方法中对 1 个以上的按钮使用 OnLongClick 侦听器

How can i use OnLongClick Listener on more than 1 buttons in a onLongClick Method in same class

这是我的代码...

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        text = (TextView) findViewById(R.id.textView);
        text.setText("Application Created");
        btn1 = (Button) findViewById(R.id.Mybutton);
        btn1.setOnClickListener(this);
        btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(this);
        btn1.setOnLongClickListener(**this**);*(Error Generated here)*
    }

public boolean onLongClick( View v)
{


    return  true;
}

我正在尝试在两个以上的按钮上使用长按侦听器,并通过使用 switch case 以单一方法(public boolean onLongClick(View v))处理它们。我尝试了我的代码,但它们是当我在大括号中传递 btn1.setOnLongClickListener(this); "this" 时生成的错误”我在同一个 class.

btn1.setOnLongClickListener(这个);

并使用 View.OnLongClickListener

实施您的 class

然后覆盖此方法

  @Override
public boolean onLongClick(View view) {
    switch(view.getId()){
     case R.id. :
     break;
  }
    return false;
}

要将 this 用作 OnLongClickListener,您的 class 应该实现接口 View.OnLongClickListener 及其方法,例如:

public class MyActivity extends AppCompatActivity implements View.OnLongClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        btn1.setOnLongClickListener(this);
    }

    @Override
    public boolean onLongClick(View view) {
        // your code here
    }
}

我相信您已经为 btn2.setOnClickListener(this) 和 OnClickListener 界面做了同样的事情。

1) 使用接口 View.OnLongClickListener 实现您的 activity 2) 重写布尔方法将生成为 onLongClick,您可以在其中为按钮编写 switch case。 3) 使用 setOnLongClickListener(this) 初始化按钮为 button.setOnLongClickListener(this);[onCreate]

示例如下-

public class MainActivity extends AppCompatActivity implements View.OnLongClickListener{

    private Button btnOne, btnTwo, btnThree;

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

        btnOne = (Button) findViewById(R.id.idBtnOne);
        btnTwo = (Button) findViewById(R.id.idBtnTwo);
        btnThree = (Button) findViewById(R.id.idBtnThree);

        btnOne.setOnLongClickListener(this);
        btnTwo.setOnLongClickListener(this);
        btnThree.setOnLongClickListener(this);

    }

    @Override
    public boolean onLongClick(View v) {

        switch(v.getId()){
            case R.id.idBtnOne:
                Toast.makeText(MainActivity.this,"Long pressed on Button 1",Toast.LENGTH_LONG).show();
                break;
            case R.id.idBtnTwo:
                Toast.makeText(MainActivity.this,"Long pressed on Button 2",Toast.LENGTH_LONG).show();
                break;
            case R.id.idBtnThree:
                Toast.makeText(MainActivity.this,"Long pressed on Button 3",Toast.LENGTH_LONG).show();
                break;
            default:
                break;

        }

        return false;
    }
}