如何为一个按钮分配三个意图?

时间:2013-12-01 18:26:23

标签: android button android-intent onclicklistener

我目前有三个按钮,每个按钮都有一个意图。一个用于呼叫的按钮,一个用于发送文本的按钮和一个用于录音的按钮。我想把它变成一个按钮,它启动记录功能,发送文本,然后拨打电话。这有可能,怎么样?

以下是我目前的三个按钮工作代码:

package com.billyware.alert;

import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;



public class MainActivity extends Activity {

protected static final int ACTIVITY_RECORD_SOUND = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button doSomethingButton = (Button) this.findViewById(R.id.button1);
    doSomethingButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent phoneCall = new Intent (Intent.ACTION_CALL,   Uri.parse("tel:999"));
            startActivity(phoneCall);

        }
    });
    Button textButton = (Button) this.findViewById(R.id.button2);
    textButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent textPeople = new Intent (Intent.ACTION_SENDTO, Uri.parse("smsto:15594254565"));
            textPeople.putExtra("sms_body","Im nervous");
            startActivity(textPeople);


        }
    });
    Button recButton = (Button) this.findViewById(R.id.button3);
    recButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent recButton = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(recButton, ACTIVITY_RECORD_SOUND);

        }
    });


}

}

2 个答案:

答案 0 :(得分:0)

从已经说过@Javanator的用户体验预期不好。所以如果你想逐一做这件事,那对用户来说也是危险的。 解决此问题的最佳方法是使用后台服务。当用户单击按钮时,它将自动在后台运行其他对用户不痛苦的工作。我认为这是解决这个问题的最佳解决方案之一。谢谢。

答案 1 :(得分:0)

通常,这样的事情在后端处理,即服务器端。当用户单击该按钮时,您的“中央命令”可以得到通知,并且可以处理发送电子邮件和短信以及拨打电话。由于记录是唯一无法从服务器端处理的内容,因此您可以在客户端进行记录,即在设备上进行记录,并将剩余的任务卸载到服务器端。

HTH。