多个按钮发送预定义的短信

问题描述 投票:0回答:3

大家好,我是编程新手。我正在尝试使用多个按钮将不同的预定义短信发送到预定义的号码。我不确定如何拥有多个 setOnClickListener(new

OnClickListener()
,因为第二个
setOnClickListener(new OnClickListener()
给了我错误。没有“
buttonSend2 = (Button) findViewById(R.id.buttonSend2)
”,程序可以正常工作。

public class SendSMSActivity extends Activity {

    Button buttonSend;
    Button buttonSend2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        buttonSend = (Button) findViewById(R.id.buttonSend);
        buttonSend2 = (Button) findViewById(R.id.buttonSend2);

        buttonSend.setOnClickListener(new OnClickListener() {
        buttonSend2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                switch (v.getId()) {

                case R.id.buttonSend:
                     Intent sendIntent = new Intent(Intent.ACTION_VIEW);
                     sendIntent.putExtra("sms_body", "abc"); 
                     sendIntent.putExtra("address", "9909990");
                     sendIntent.setType("vnd.android-dir/mms-sms");
                     startActivity(sendIntent);
                     break;

                case R.id.buttonSend2:
                    Intent sendIntent1 = new Intent(Intent.ACTION_VIEW);
                     sendIntent1.putExtra("sms_body", "def"); 
                     sendIntent1.putExtra("address", "012345678");
                     sendIntent1.setType("vnd.android-dir/mms-sms");
                     startActivity(sendIntent1);
                     break;
                }

            }
            });
        });
    }

}

谢谢!

android sms onclicklistener
3个回答
0
投票

看起来您的点击监听器有点困惑。试试这个:

buttonSend = (Button) findViewById(R.id.buttonSend);
buttonSend2 = (Button) findViewById(R.id.buttonSend2);

OnClickListener listener = new OnClickListener() {

    @Override
    public void onClick(View v) {

        switch (v.getId()) {

        case R.id.buttonSend:
             Intent sendIntent = new Intent(Intent.ACTION_VIEW);
             sendIntent.putExtra("sms_body", "abc"); 
             sendIntent.putExtra("address", "9909990");
             sendIntent.setType("vnd.android-dir/mms-sms");
             startActivity(sendIntent);
             break;

        case R.id.buttonSend2:
            Intent sendIntent1 = new Intent(Intent.ACTION_VIEW);
             sendIntent1.putExtra("sms_body", "def"); 
             sendIntent1.putExtra("address", "012345678");
             sendIntent1.setType("vnd.android-dir/mms-sms");
             startActivity(sendIntent1);
             break;
        }

    }
};

buttonSend.setOnClickListener(listener);
buttonSend2.setOnClickListener(listener);

0
投票

Ben Pearson 的回答是完全有效的,但我想我会留下一个替代方案,以防你正在做的事情更容易。

您可以让您的活动类实现

View.onClickListener
,然后在您的类中简单地使用
onClick(View v)
方法并使用上面的 switch 语句。

这是一个非常微妙的区别,但如果您在不同的方法中隐藏或显示不同的可点击对象,并且不希望 onClickListener 的类变量,则此实现可能很适合您。


-1
投票

我正在寻找一个可以完全完成您所编写的操作的应用程序。 你能告诉我是否有这样的应用程序吗?存在。 预先感谢

© www.soinside.com 2019 - 2024. All rights reserved.