2016-11-27 6 views
0

私はボタンをクリックすることで、アプリの画面を変更するbeloveコードを使用しています。画面ボタンを変更するために別の機能を追加する方法は?

私は同じボタンに別の機能を追加して、プログラムでSMSを送信したいと考えています。 は、私はそれが動作しませんthis.Butのようなコードの上に変更します。

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(); 
        } 

} 

誰でもこの問題を解決するのに役立ちます。 私はONE clicklistenerを持っていると同時に

答えて

0

ボタンで動作するように、同じボタンに両方の函数を追加します。その中に2つの関数を記述します。

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()関数を並列に実行したい場合は、それを並列に実行します。

0

その内部のコードが実行されることはありませんので、あなたはどこにでもonCreate1を呼び出していませんでした。そのため、第2のリスナーは決して追加されません。呼び出されたとしても、ボタンにはリスナーが1つしか存在できません。新しいアクティビティを開始する前または開始する前にsendSMSに電話することができます。

button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

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

}); 
関連する問題