How Can I Call A Function In Activity From Another Activity In Android?
Solution 1:
Make the method as public static which you are going to access from another activity. then call it as activity1.sendsms();
This is the way . if you post the code will advice you better way... hope this will help you .
Hi use the below code. the thing is you need to use Context.
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.widget.Toast;
publicclassSendingSmsextendsActivity {
staticContext context;
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);
context=this;
}
publicstaticvoidsendSMS(String telNo, String mesaj)
{
StringSENT = "SMS_SENT";
StringDELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, newIntent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, newIntent(DELIVERED), 0);
context.registerReceiver(newBroadcastReceiver() {
@OverridepublicvoidonReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stubswitch(getResultCode())
{
caseActivity.RESULT_OK:
Toast.makeText(context, "SMS Gönderildi",Toast.LENGTH_SHORT).show();
break;
caseSmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(context, "Generic failure",Toast.LENGTH_SHORT).show();
break;
caseSmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(context, "No service",Toast.LENGTH_SHORT).show();
break;
caseSmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(context, "Null PDU",Toast.LENGTH_SHORT).show();
break;
caseSmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(context, "Radio off",Toast.LENGTH_SHORT).show();
break;
}
}
}, newIntentFilter(SENT));
context. registerReceiver(newBroadcastReceiver(){
@OverridepublicvoidonReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
caseActivity.RESULT_OK:
Toast.makeText(context, "SMS iletildi",
Toast.LENGTH_SHORT).show();
break;
caseActivity.RESULT_CANCELED:
Toast.makeText(context, "SMS iletilemedi",
Toast.LENGTH_SHORT).show();
break;
}
}
}, newIntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(telNo, null, mesaj, sentPI, deliveredPI);
Toast.makeText(context, telNo.toString() + " - " + mesaj.toString(), Toast.LENGTH_LONG).show();
}
}
Solution 2:
First intialize the class in your sendMessage.java
sendinsms sm=new sendinsms();
sm.sendsms(your parameter);
Solution 3:
First of all, you are missing one permission:
> Caused by: java.lang.SecurityException: Sending SMS message: User> 10048 does not have android.permission.SEND_SMS.
Secondly, this method should not be static
- you can have a memory leak.
If you SendMessage extends SendSms you should make SendSms.sendSms method public and it should work
You should not use: static Context context;
context
should be a normal field. And why you need it :>? You can use activity context
Solution 4:
you can do in two ways :
1. pass the context of the activity in which the method is present into the other activity where you want to call the method.
2. second way is to make the method static and then call it from other activity using classname with . operator
Eg:
Class_Name.method()
Post a Comment for "How Can I Call A Function In Activity From Another Activity In Android?"