2014-11-23 88 views
0

我一直在寻找这个问题的答案,但没有人真正给出了应该还是什么样子的代码一个明确的答案。我创建了一个安卓应用,当你点击一个按钮时播放声音,但是当他们按住按钮时,用户不得不选择一个按钮,显示屏出现,他们可以下载或保存为铃声。有谁知道你会怎么做呢?按住按钮可以选择保存为铃声吗?

这里是我的代码:

MediaPlayer mediaPlayer; 

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


    Button Bus = (Button) findViewById(R.id.b1); 
    Bus.setOnClickListener (new OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Uri p1 = Uri.parse("android.resource://" + getPackageName() + 
        "/" + R.raw.bus); 
      mediaPlayer = MediaPlayer.create(MainActivity.this, p1); 
      mediaPlayer.start(); 
     } 

    }); 

和我的XML:

<Button 
     android:id="@+id/b1" 
     android:layout_width="125dp" 
     android:layout_height="60dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="18dp" 
     android:layout_marginStart="21dp" 
     android:layout_marginTop="25dp" 
     android:background="@drawable/jay" 
     android:shadowColor="#00FF00" 
     android:shadowDx="0" 
     android:shadowDy="0" 
     android:shadowRadius="10" 
     android:text="@string/b1" 
     android:textColor="#000000" /> 

谢谢,我会很感激在这个问题上的任何帮助!

+0

让我知道,如果有帮助.. – Elltz 2014-11-23 19:47:54

回答

1

孤单是

Button.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View arg0) { 
      // TODO Auto-generated method stub 
      //your code here with this you do anything manually 
      return false; 
     } 
    }); 

第二种方法 可以,也可以在OnCreate或OnStart中或的onResume

Context.registerForContextMenu(Button); 

然后创建一个上下文菜单注册您的上下文菜单按钮..和处理点击那里..

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    // TODO Auto-generated method stub 
    super.onCreateContextMenu(menu, v, menuInfo); 
    getMenuInflater().inflate(R.menu.playlist, menu); 
} 

创建上下文项选择

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    // TODO Auto-generated method stub 

    switch(item.getItemId()){ 
    case R.id.download: 
     //code to download 
     break; 
    case R.id.save:   
     //code to save 
     break; 
    } 
    return super.onContextItemSelected(item); 
} 

您的播放列表菜单的xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
    android:id="@+id/save" 
    android:title="save playlist"/> 
<item 
    android:id="@+id/download"   
    android:title="download playlist"/> 
</menu> 
+0

的setOnLongClickListener工作很好,但我只是不能确定哪些代码我应该写在它的参数 – 2014-11-24 06:58:17

+0

里面你是什么意思详细说明...第二种方式是非常直接的问题.. – Elltz 2014-11-25 09:14:46

+0

明白了伙伴对不起,这样一个愚蠢的屁股,这个android编码很新兴。 – 2014-11-25 22:24:54