0

這裏是我的代碼...如何我可以使用OnLongClick監聽器上超過1個按鈕的onLongClick方法在同一類

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);「這個」大括號」我是同一類處理該事件

+0

使用開關的情況下,開關(view.getId()),並確定你的按鈕與他們各自的ID –

+0

非常感謝你,先生!對於試圖幫助我,但我面臨錯誤 –

+0

btn1.setOnLongClickListener(** this **); *(此處生成的錯誤)*本部分可以請你幫我在這部分 –

回答

0

1)實現與View.OnLongClickListener 2)覆蓋布爾方法會產生如onLongClick,在那裏你可以寫你的開關情況下的按鈕界面您的活動。 3)初始化按鈕與setOnLongClickListener(本)如longClick 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; 
    } 
} 
0

btn1.setOnLongClickListener(本);

View.OnLongClickListener

impliment你的類,然後重寫此方法

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

要使用爲OnLongClickListener類應該實現的接口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接口。

+0

是的,謝謝已經完成了 :) –

相關問題