我如何在同一 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;
}
}
这是我的代码...
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
然后覆盖此方法
@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;
}
}