2017-05-31 74 views
0

我試圖將我的分段佈局中的按鈕映射爲鍵盤上的按鍵。 這是我按下按鈕:作爲鍵盤按下的應用程序按鈕

Button down = (Button)(myView.findViewById(R.id.btnDOWN)); 

    down.setOnTouchListener(new View.OnTouchListener(){ 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Log.i(TAG, "Down pressed"); 
      return false; 
     } 
    }); 

我沒能找到,這將允許我這樣做任何庫,所有我發現了相反的情況下,當一個鍵盤或控制器按將被髮送到設備。

我試圖在這裏通常做的是一個應用程序,它像一個控制器的RetroPie一樣使用手機作爲藍牙鍵盤,只有特定控制器必需的按鍵。

回答

0

您使用的方法不正確。你應該使用setOnClickListener

下面一個例子來自Android official guide

public class MyActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 

     setContentView(R.layout.content_layout_id); 

     final Button button = findViewById(R.id.button_id); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
      } 
     }); 
    } 
} 

如果您正在尋找連續的長又名點擊,您應將其更改爲setOnLongClickListener

down.setOnLongClickListener(new OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      // TODO Auto-generated method stub 
      return true; 
     } 
    }); 

在這種情況下不難找到解決方案site

+0

但是,onClick只會註冊最初的點擊,使其成爲單數。我不應該使用onTouch獲取連續輸入嗎?我不想在每次我想下降時都點擊下來,我想保留它。 – NoobProgrammerWannabe

+0

所以你想讓聽衆「長按按鈕」動作?請幫助我更好地瞭解你在找什麼 – Thecave3

+0

按鈕功能在這裏不是問題,有一個控制器,我會有單擊和長按。(你可以糾正並引導我正確實施儘管如此,長按/連續按)。主要的問題是將按鈕按下注冊爲鍵盤按下,這樣在RetroPie上,我可以將它作爲普通的鍵盤「A」輸入接收。 – NoobProgrammerWannabe