2014-01-28 3 views
0

Я изо всех сил пытаюсь получить отображение обработчика Toast messgae, который также содержит переменную, извлеченную из msg.obj.It не дает мне никаких ошибок, но сообщение Toast не отображается. кодвопросов с Toast внутри обработчика

Handler nok=new Handler() { 

    public void handleMessage(Message msg) 


    { 



Location locator=(Location)msg.obj; 
float lat=(float)(locator.getLatitude()); 
Toast.makeText(m,"the latitude is+lat,Toast.LENGTH_LONG).show(); 


} 

я также попытался добавить

runOnUiThread(new Runnable() 

{ 

public void run(){ 


Toast.makeText(m,"the latitude is" +lat,Toast.LENGTH_LONG).show(); 

} 

, но в этом случае переменная лат не распознается за пределами Хэндлер, какие-либо идеи?

весь класс

public class MainActivity extends Activity { 

public static final String content="Asega kvo stava"; 
public static final Integer kom=2; 
Context m; 
Looper lupy; 
Handler ok; 
Handler nok=new Handler() { 

    public void handleMessage(Message msg) 


    { 
     System.out.println("Check"); 


     Location locator=(Location)msg.obj; 
      float lat=(float)(locator.getLatitude()); 
Toast.makeText(MainActivity.this,"the latitude is"+" "+lat,Toast.LENGTH_LONG).show(); 
     } 

    }; 

и класс проводкой messsage:

public class locac implements LocationListener { 

public Context Ctx; 
Handler nok; 
public static String okai="Ctx.LOCATION_SERVICE"; 
public static String moi="manag.GPS_PROVIDER"; 


    Location loc; 

public locac (Context context,Handler handler) 


{ 


    this.nok=handler; 

    this.Ctx=context; 

} 



public void getLoc (Location Loc) 

{ 
    if(loc!=null) 

    { 
     LocationManager manag; 

     manag=(LocationManager)Ctx.getSystemService(okai); 

     Message kol=new Message(); 
     kol.obj=loc; 
     nok.sendMessage(kol); 
    } 


} 
+0

Что такое переменная 'm'? – Ogen

+0

Я не вижу ничего призванного, его всего лишь методы. – Ogen

ответ

0
Handler nok=new Handler() { 

    public void handleMessage(Message msg) 


    { 



Location locator=(Location)msg.obj; 
float lat=(float)(locator.getLatitude()); 
Toast.makeText(getApplicationContext(), "the latitude is" + " " +lat, Toast.LENGTH_LONG).show(); 


} 

Попробуйте использовать это.

+0

попробовал, не показывая ... – user2557930

+0

положил 'System.out.println (« Check »);' statement внутри метода handleMessage', чтобы убедиться, что он действительно запущен. – Ogen

+0

ОК, хорошая точка, по какой-то причине это выглядит как HandleMessage вообще не называется – user2557930

0

Вы уверены, что m установлен в контексте вашей деятельности? Вы уверены, что правильно отправляете сообщение и вызывается handleMessage()?

+0

да, я также пробовал с MainActivity.this, о том, как сообщение, которое я назвал, отправил еще один вопрос, где вы можете увидеть вызывающий класс в коде - http://stackoverflow.com/questions/ 21416264/ближнее местоположение с-обработчик-из-различного класса – user2557930

Смежные вопросы