2016-11-27 81 views
0

我用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); 

     } 

    }); 

} 

我要添加其他功能相同的按鈕,以編程方式發送短信。 我改變上述像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(); 
        } 

} 

任何人都可以幫助我解決這個問題。 我希望兩個fuctions添加到同一個按鈕,在同一時間

回答

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()函數的一個線程內。

0

你沒有任何地方調用onCreate1所以它裏面的代碼將永遠不會被運行。這就是爲什麼第二個聽衆永遠不會被添加的原因。即使它被調用,按鈕也只能有一個監聽器。您可以在開始新活動之後或之前致電sendSMS

button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

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

}); 
相關問題