2013-03-07 38 views
1

您好我新開發Android應用程序,我有一些問題。GCM消息返回填寫表格

我GCM正常工作:

protected void onMessage(Context context, Intent intent) { 
     Log.i(TAG, "Receenter code hereived message"); 
     Log.i(TAG, intent.getStringExtra("name")); 
     Log.i(TAG, intent.getStringExtra("fone")); 

     //google example (with this, the "message" ll be append in screen, like a miracle) 
     displayMessage(context, intent.getStringExtra("nome") + " " + intent.getStringExtra("telefone")); 
    } 

是登錄電子名稱和Fone公司,但我想在我的表單字段這就是把「消息」。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="8dip" > 

    <TableLayout 
     android:id="@+id/TableLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="8dp" > 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="8dp" > 



     <TextView 
      android:id="@+id/display" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
     </TableRow> 

     <EditText 
      android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" > 

      <requestFocus /> 
     </EditText> 

     <EditText 
      android:id="@+id/fone" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" /> 
    </TableLayout> 

</ScrollView> 

我該怎麼辦呢? (獲得活力,獲得領域,填補領域......)

回答

1

一旦在GCMIntentService中獲得「消息」,就可以通過多種方式將其內容傳遞給其他應用程序組件。

在GCM演示程序中,他們創建了一個通知(請參閱「generateNotification」方法)。 https://code.google.com/p/gcm/source/browse/samples/gcm-demo-client/src/com/google/android/gcm/demo/app/GCMIntentService.java

如果你想顯示在Activity的內容,那麼你要解僱一個Intent的到Activity與所需的數據爲「臨時演員」。

您不會在GCM服務中「獲取活動」,而是指定「意圖」,系統將調用正確的Activity來處理它。欲瞭解更多信息,請參閱有關intents/intentfilters的文檔:http://developer.android.com/guide/components/intents-filters.html

下面是一個過於簡單的例子:

protected void onMessage(Context context, Intent intent) { 
    Log.i(TAG, "Receenter code hereived message"); 
    Log.i(TAG, intent.getStringExtra("name")); 
    Log.i(TAG, intent.getStringExtra("fone")); 

    // create ANOTHER intent to fire off the data to YOUR activity 
    Intent i = new Intent(this, MyActivity.class); 
    i.putExtra("nome", intent.getStringExtra("nome")); 
    i.putExtra("fone", intent.getStringExtra("fone")); 
    startActivity(i);  

}

然後在MyActivity做類似如下:

String nome = getIntent().getStringExtra("nome"); 

正如我所說的,這個例子過於簡單(你需要在使用它之前檢查數據是否真的存在,在你的服務和你的活動中,你可能想要使用其他數據類型並且有默認值,還有其他交換數據的方法取決於需求),但它應該讓你開始。

+0

嗯,thx這麼多,你幫我很多。 – rcorbellini 2013-03-07 16:32:41

+0

更多一個小問題,如果我的設備沒有添加谷歌帳戶只有添加coporate accont,我可以在這個設備使用gcm? – rcorbellini 2013-03-07 16:34:15

+0

如果這裏的答案對您有幫助,您可能需要將其標記爲「已接受」。至於使用Google帳戶與否,這將是另一個問題,請繼續併爲此提交一個新問題。而且,歡迎來到SO! – 2013-03-07 17:29:52