просмотр текста Android не обновляется - PullRequest
1 голос
/ 22 марта 2012

У меня проблема с обновлением моего textview.я делаю приложение c2dm.отправленные мною сообщения принимаются устройством (так как я поместил сообщение для отображения на панели уведомлений. у меня также есть много журналов, в которых говорится, что сообщение было получено).однако, как только я нажимаю на сообщение в области уведомлений, чтобы открыть мой вид, он показывает только мое 1 сообщение.Например, я отправляю сообщение, а затем хочу отправить другое сообщение, которое отображается только в первом сообщении.

Я обнаружил, что мне может понадобиться onNewIntent, однако я не уверен, что обошел его вправильный способ.

 public class MessageReceivedActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_result);
        Bundle extras = getIntent().getExtras();            

        if (extras != null) {
            String message = extras.getString("payload");
            if (message != null && message.length() > 0) {
                TextView view = (TextView) findViewById(R.id.result);
                view.setText(message);
            }
        }

        super.onCreate(savedInstanceState);     
    }
     @Override
     protected void onNewIntent(Intent intent) {             

            setContentView(R.layout.activity_result);
            Bundle extras = getIntent().getExtras();                

            if (extras != null) {
                String message = extras.getString("payload");
                if (message != null && message.length() > 0) {
                    TextView view = (TextView) findViewById(R.id.result);
                     setIntent(intent);
                    view.setText(message);    
                }
            }               
//         setIntent(intent);          
     }
}

мой макет представляет собой activity_result, который содержит только 1 просмотр текста. Мой текстовый просмотр называется результатом, а полезная нагрузка - это сообщение, которое я отправляю с моего сервера

.*

Ответы [ 5 ]

0 голосов
/ 22 марта 2012

для всех с этой проблемой. я посмотрел на другой вопрос переполнения стека, вот ответ. в получателе сообщения внутри createNotification добавить это

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent, 
            PendingIntent.FLAG_CANCEL_CURRENT);

не забывайте флаг в конце, который отменяет текущий вид

0 голосов
/ 22 марта 2012

в Acitity A:

Intent mIntent = new Intent();  
        mIntent.setClass(mContext, MessageReceivedActivity.class);  

        mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  

        mIntent.putExtra("payload", "fdfsfnj");  
        mContext.startActivity(mIntent);  

в Acitity MessageReceivedActivity:

    @Override  
        protected void onNewIntent(Intent intent)  
        {  

            String message  = intent.getData();  
            //Or you can use
            String message  = getIntent().getStringExtra("payload", ""); 
super.onNewIntent(intent);  
        }  
0 голосов
/ 22 марта 2012

Я думаю, вам нужно посмотреть на ваши идентификаторы уведомлений.Вы отправляете сообщения, но все они имеют одинаковый идентификатор уведомления.Вы должны как-то увеличить идентификатор уведомления.

0 голосов
/ 22 марта 2012

в методе onNewIntent (), вы должны использовать setIntent (intent) перед Bundle extras = getIntent (). GetExtras (); или дополнения ноль

и setContentView (R.layout.activity_result) не требуется в onNewIntent ()

0 голосов
/ 22 марта 2012

Обновление Textview из функции Android как изменить текст в Android TextView

Надеюсь, они могут помочь. Есть ли причина не использовать edittext для таких ситуаций? Я новичок в этом.

...