2017-02-24 46 views
0

由於我是Java和Android Studio的新手,我在一個小應用程序上工作了一個Soundboard。所以直到現在我編寫了一個SoundBoard 2陣列的按鈕聲卡和聲音陣列.mp3初學者 - 上下文菜單針對不同按鈕的不同功能

現在我建立一個上下文菜單,它也運行良好,但直到現在我的問題是應用程序正在爲每個按鈕上下文菜單的相同「功能」。但每個按鈕確實有不同的聲音我怎麼能得到它的工作,它也在努力像陣列/按鈕,對於每個按鈕有不同的音效檔

public int[] buttonsas = {button1, R.id.button2, R.id.button3}; 
public int[] sounds = {R.raw.sound1, R.raw.sound2, R.raw.sound3}; 

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



    for (int i = 0; i < buttonsas.length; i++) { 
     Button contextMenuButton = (Button) findViewById(buttonsas[i]); 
     registerForContextMenu(contextMenuButton); 
    } 

    MainMedia = MediaPlayer.create(this, R.raw.sound1); 
} 
@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    menu.setHeaderTitle("Context Menu"); 
    menu.add(0, v.getId(), 0, "Action 1"); 
    menu.add(0, v.getId(), 0, "Action 2"); 
} 


@Override 
public boolean onContextItemSelected(MenuItem item) { 

    if(item.getTitle().equals("Action 1")){function1(item.getItemId());} 
    else if(item.getTitle().equals("Action 2"))           {function2(item.getItemId());} 
    else {return false;} 
    return true; 
} 

public void function1(int id){ 
    Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show(); 
} 
public void function2(int id){ 
    Toast.makeText(this, "function 2 called", Toast.LENGTH_SHORT).show(); 
} 

回答

0

試試下面的代碼和註釋的情況下,你覺得有什麼難度

//replace following in your onCreate method 
for (int i = 0; i < buttonsas.length; i++) { 
      Button contextMenuButton = (Button) findViewById(buttonsas[i]); 
      contextMenuButton.setText("Action "+i); 
      registerForContextMenu(contextMenuButton); 
     } 

而且

@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    menu.setHeaderTitle("Context Menu"); 
    Button buttonView = (Button) v; 
    menu.add(0, buttonView .getId(), 0, buttonView.getText()); 
} 

`

+0

感謝約2英里ñ前我解決了我自己的問題嘿嘿:P,但我也試過這個,它也工作得很好:) – ExiizZ