按住按钮可以选择保存为铃声?

时间:2014-11-23 14:21:58

标签: java android xml button

我正在寻找这个问题的答案,但没有人真正给出了应该是什么代码或类似代码的明确答案。我创建了一个Android应用程序,当你点击按钮时播放声音,但是当我们按住按钮时,我希望必须选择显示器,他们可以下载或保存为铃声。有谁知道你会怎么做呢?

这是我的代码:

 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" />

谢谢,我非常感谢您对此问题的任何帮助!

1 个答案:

答案 0 :(得分:1)

theres是

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>