我是Android的初学者。我制作了一个Android应用程序,通过GCM服务处理推送通知,现在我需要为应用程序添加更多功能,所以我认为选项卡将是完美的选择。就像我说我有推送通知应用程序工作,还有另一个应用程序,具有可滑动视图工作的标签布局,但现在我需要合并它们,这就是我迷失的地方。
我该怎么办?我尝试将Tabs应用程序的主要活动代码添加到另一个应用程序中,并添加碎片但不起作用。
也许我只需要将Push应用程序的代码粘贴到其中一个新片段(?)
中这就是我所做的(这是应用程序的一部分):
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private TabsPager_Adapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Login Screen", "Estado de Sensores", "Botones" };
public static final long EXPIRATION_TIME_MS = 1000 * 3600 * 24 * 7;
String SENDER_ID = "171235143158";
private static final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
private Context context;
private String regid;
private GoogleCloudMessaging gcm;
private EditText txtUser;
private Button btnRegistrar;
static final String TAG = "GCMDemo";
private static final String PROPERTY_REG_ID = "registration_id";
private static final String PROPERTY_APP_VERSION = "appVersion";
private static final String PROPERTY_EXPIRATION_TIME = "onServerExpirationTimeMs";
private static final String PROPERTY_USER = "user";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPager_Adapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs)
{
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
/**
* on swiping the viewpager make respective tab selected
* */
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position)
{
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
});
txtUser = (EditText)findViewById(R.id.txtUsuario);
btnRegistrar = (Button)findViewById(R.id.btnGuardar);
btnRegistrar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
context = getApplicationContext();
//Chequeamos si está instalado Google Play Services
if(checkPlayServices())
{
gcm = GoogleCloudMessaging.getInstance(MainActivity.this);
//Obtenemos el Registration ID guardado
regid = getRegistrationId(context);
//Si no disponemos de Registration ID comenzamos el registro
if (regid.equals("")) {
TareaRegistroGCM tarea = new TareaRegistroGCM();
tarea.execute(txtUser.getText().toString());
}
}
else
{
Log.i(TAG, "No se ha encontrado Google Play Services.");
}
}
});
}
答案 0 :(得分:0)
Android应该首先理解的是Intent原则。 使用意图和BroadcastReceivers,您甚至可以发送自己的意图来唤醒“应用程序”。
例如,您可以将操作字符串设置为GCM_RECEIVED,并根据需要添加额外值来处理它。
从这里开始查看广播概念的简单示例, http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html