2015-08-05 2 views
0

Это мой код, когда пользователь нажимает кнопку совместного доступа.Toast не отображается в сообщении tweet

public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.btn_login : 
       loginToTwitter(); 
       break; 
      case R.id.btn_share: 
       status = "I'm riding at taxi name: " + operator.getText().toString() + "\n" + "With the plate number of: " + plate.getText().toString() + "\n" + 
         shareEditText.getText().toString(); 
       if(status.trim().length() > 0) { 
        new updateTwitterStatus().execute(status); 
       } else { 
        Toast.makeText(this, "Message is empty!!", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
     } 
    } 

    class updateTwitterStatus extends AsyncTask<String, String, Void> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 

      pDialog = new ProgressDialog(MainActivity2Activity.this); 
      pDialog.setMessage("Posting to Twitter..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
     } 

     @Override 
     protected Void doInBackground(String... params) { 

      String status = params[0]; 

      try { 
       ConfigurationBuilder builder = new ConfigurationBuilder(); 
       builder.setOAuthConsumerKey(consumerKey); 
       builder.setOAuthConsumerSecret(consumerSecret); 

       String access_token = sharedPreferences.getString(PREF_KEY_OAUTH_TOKEN, ""); 
       String acces_token_secret = sharedPreferences.getString(PREF_KEY_OAUTH_SECRET, ""); 

       AccessToken accessToken = new AccessToken(access_token, acces_token_secret); 

       Twitter twitter = new TwitterFactory(builder.build()).getInstance(accessToken); 

       StatusUpdate statusUpdate = new StatusUpdate(status); 

       twitter4j.Status response = twitter.updateStatus(statusUpdate); 

      } catch (TwitterException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Void aVoid) { 

      pDialog.dismiss(); 

      Toast.makeText(getApplicationContext(), "Posted to Twitter!", Toast.LENGTH_SHORT); 

      shareEditText.setText(""); 
     } 
    } 

Когда сообщение содержание успешно твиттере тост, который я задаю в OnPostExecute не работает. Даже твит не отправляется, тост не показывает. Я не знаю, почему. Я не могу определить, есть ли твит в твиттере или нет. но когда я пытаюсь, он успешно чирикает, но он не показывает тост.

ответ

4

вы должны использовать show()

Toast.makeText(getApplicationContext(), "Posted to Twitter!", Toast.LENGTH_SHORT).show(); 

и для лучшего использования кодирования переменной контекста или activityName.this вместо getApplicationContext()

+0

как он показывает его вне OnCreate он не может использовать getApplicationContext(), InstEd если что нужно использовать это. я? –

+0

извините. я забыл поставить .show. Lols. Благодарю. :) – user3802633

2
Toast.makeText(getApplicationContext(), "Posted to Twitter!", Toast.LENGTH_SHORT); 

Тост не показывает, потому что вы не вызвали show() метод.

как:

Toast.makeText(getApplicationContext(), "Posted to Twitter!", Toast.LENGTH_SHORT).show(); 
Смежные вопросы