如何添加另一个功能来改变屏幕按钮?

时间:2016-11-27 15:36:34

标签: android

我使用了belove代码来更改应用程序的屏幕点击按钮。

Button button;

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


}


public void addListenerOnButton() {

    final Context context = this;

    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(context, App2Activity.class);
            startActivity(intent);   

        }

    });

}

我想在同一个按钮上添加另一个函数,以编程方式发送短信。 我改变了上面这样的代码。但它不起作用。

Button button;

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


}


public void addListenerOnButton() {

    final Context context = this;

    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(context, App2Activity.class);
            startActivity(intent);   

        }

    });

}


protected void onCreate1(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


      findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            sendSMS();
        }
    });

    }
private void sendSMS()
{

   try {
 SmsManager sms = SmsManager.getDefault();
 ArrayList<String> smsString = sms.divideMessage("XXXX");
 sms.sendMultipartTextMessage("XXXXX", null, smsString, null, null);
 Toast.makeText(getBaseContext(), "SMS Sent..", Toast.LENGTH_SHORT).show();
    }

    catch(Exception exp){
 Toast.makeText(getBaseContext(), "SMS sending failed...",Toast.LENGTH_SHORT).show();
                     }

}   
任何人都可以帮我解决这个问题。 我想将两个功能添加到同一个按钮,同时工作

2 个答案:

答案 0 :(得分:0)

该按钮只有一个clicklistener。在其中你编写了两个函数。

Button button;

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

public void addListenerOnButton() {
    final Context context = this;

    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            sendSMS();
            Intent intent = new Intent(context, App2Activity.class);
            startActivity(intent);   
        }
    });
}

如果你想这样做,可以将sendSMS()函数并行放在一个线程中。

答案 1 :(得分:0)

您没有在任何地方调用onCreate1,因此其中的代码永远不会运行。这就是为什么永远不会添加第二个听众的原因。即使它被调用,按钮也只能有一个监听器。您可以在开始新活动之后或之前致电sendSMS

button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(context, App2Activity.class);
        startActivity(intent);   
        sendSMS(); // here!
    }

});