2013-02-15 129 views
0

我從gpstracking.java調用setmessage函數來設置新的intent中的textview值,但是當我運行它時什麼都不顯示。我不知道錯誤是什麼。 我發佈code.I使用setText設置值。我發送經緯度作爲參數的函數。文本不顯示在文本視圖

gpstracking.java

package com.example.gpstracking; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Locale; 
import android.app.Activity; 
import android.content.Intent; 
import android.location.Address; 
import android.location.Geocoder; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 
public class AndroidGPSTrackingActivity extends Activity { 
    Button btnShowLocation; 

    // GPSTracker class 
    GPSTracker gps; 
    List<Address> addresses; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btnShowLocation = (Button) findViewById(R.id.btnShowLocation); 
     final Intent i; 
     i=new Intent(this,SMS.class); 
     // show location button click event 
     btnShowLocation.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) {   
       // create class object 
       gps = new GPSTracker(AndroidGPSTrackingActivity.this); 

      // check if GPS enabled  
       if(gps.canGetLocation()){ 

        double latitude = gps.getLatitude(); 
        double longitude = gps.getLongitude(); 

        // \n is for new line 
       Geocoder gcd = new Geocoder(AndroidGPSTrackingActivity.this, Locale.getDefault()); 
        try{ 
        List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1); 

        if (addresses.size() > 0) 
        { 
         SMS.setmessage(latitude,longitude); 
        } 
        }catch(Exception e) 
        { 
         System.out.print(e); 
        } 
       }else{ 
        // can't get location 
        // GPS or Network is not enabled 
        // Ask user to enable GPS/network in settings 
        gps.showSettingsAlert(); 
       } 
       startActivity(i); 
      } 
     }); 
    } 

} 

SMS.java

package com.example.gpstracking; 
import com.example.gpstracking.R; 
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.gsm.SmsManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
public class SMS extends Activity { 
    Button btnSendSMS; 
    EditText phone_number; 
    static TextView message; 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.smsmain); 
     btnSendSMS = (Button) findViewById(R.id.sendmessage); 
     phone_number= (EditText) findViewById(R.id.phone_number); 
     message=(TextView) findViewById(R.id.message); 
     btnSendSMS.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       String phoneNo = phone_number.getText().toString(); 
       String msg = message.getText().toString(); 
       if (phoneNo.length()>0)// && message.length()>0)     
        sendSMS(phoneNo, msg);     
       else 
        Toast.makeText(getBaseContext(), 
         "Please enter both phone number and message.", 
         Toast.LENGTH_SHORT).show(); 
      } 
     }); 
      }    


private void sendSMS(String phoneNumber, String message) 
{  
    /* 
    PendingIntent pi = PendingIntent.getActivity(this, 0, 
      new Intent(this, test.class), 0);     
     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber, null, message, pi, null);   
    */ 

    String SENT = "SMS_SENT"; 
    String DELIVERED = "SMS_DELIVERED"; 

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, 
     new Intent(SENT), 0); 

    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, 
     new Intent(DELIVERED), 0); 

    //---when the SMS has been sent--- 
    registerReceiver(new BroadcastReceiver(){ 
     @SuppressWarnings("deprecation") 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      switch (getResultCode()) 
      { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), "SMS sent", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case android.telephony.SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        Toast.makeText(getBaseContext(), "Generic failure", 
          Toast.LENGTH_SHORT).show(); 
       break; 
      case android.telephony.SmsManager.RESULT_ERROR_NO_SERVICE: 
       Toast.makeText(getBaseContext(), "No service", 
         Toast.LENGTH_SHORT).show(); 
        break; 
       case android.telephony.SmsManager.RESULT_ERROR_NULL_PDU: 
        Toast.makeText(getBaseContext(), "Null PDU", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case android.telephony.SmsManager.RESULT_ERROR_RADIO_OFF: 
        Toast.makeText(getBaseContext(), "Radio off", 
          Toast.LENGTH_SHORT).show(); 
        break; 
      } 
     } 
    }, new IntentFilter(SENT)); 

    //---when the SMS has been delivered--- 
    registerReceiver(new BroadcastReceiver(){ 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      switch (getResultCode()) 
      { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), "SMS delivered", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case Activity.RESULT_CANCELED: 
        Toast.makeText(getBaseContext(), "SMS not delivered", 
          Toast.LENGTH_SHORT).show(); 
        break;      
      } 
     } 
    }, new IntentFilter(DELIVERED));   

    @SuppressWarnings("deprecation") 
    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);    
} 
public static void setmessage(double latitude,double longitude) 
{ 

    message.setText("my lat long is"+latitude+longitude); 
} 
} 
+0

我希望你在用戶的同意男人這樣做。 – Reno 2013-02-15 06:57:50

+0

爲什麼你不會嘗試其他郵件的情況 – Sree 2013-02-15 06:58:30

+0

我已經添加了權限人 – 2013-02-15 07:01:12

回答

0

試試這個,把經緯度下一個活動,並得到它。

Intent I = new Intent(AndroidGPSTrackingActivity.this, SMS.class); 
I.putExtra("latitude", latitude); 
I.putExtra("longitude", longitude); 
startActivity(I); 

獲取此lat和lng爲下一個類。

Intent i = getIntent(); 
lat = i.getStringExtra("latitude"); 
lng = i.getStringExtra("longitude"); 

編輯了自己的CODE:

public class AndroidGPSTrackingActivity extends Activity { 
Button btnShowLocation; 

// GPSTracker class 
GPSTracker gps; 
List<Address> addresses; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    btnShowLocation = (Button) findViewById(R.id.btnShowLocation); 

    // show location button click event 
    btnShowLocation.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) {   
      // create class object 
      gps = new GPSTracker(AndroidGPSTrackingActivity.this); 

     // check if GPS enabled  
      if(gps.canGetLocation()){ 

       double latitude = gps.getLatitude(); 
       double longitude = gps.getLongitude(); 

       // \n is for new line 
      Geocoder gcd = new Geocoder(AndroidGPSTrackingActivity.this, Locale.getDefault()); 
       try{ 
       List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1); 

       if (addresses.size() > 0) 
       { 
        SMS.setmessage(latitude,longitude); 
       } 
       }catch(Exception e) 
       { 
        System.out.print(e); 
       } 
      }else{ 
       // can't get location 
       // GPS or Network is not enabled 
       // Ask user to enable GPS/network in settings 
       gps.showSettingsAlert(); 
      } 
      final Intent i; 
    i=new Intent(this,SMS.class); 
    i.putExtra("latitude", latitude); 
i.putExtra("longitude", longitude); 
      startActivity(i); 
     } 
    }); 

} 

,然後讓你的緯度和經度的SMS.class onCreate內。你會得到價值

+0

我複製的位置變量,並在SMS.java中使用,現在它的工作。 – 2013-02-16 10:20:14