plus notificaciones google desactivar android menu implementation

android - notificaciones - ¿La mejor manera de implementar un menú deslizable de Google+?



google+ web (2)

Soy un desarrollador de Android nuevo que está tratando de crear una aplicación que utiliza un menú de vuelo (similar a google +, fb, steam, youtube). Encontré que https://github.com/jfeinstein10/SlidingMenu funciona bien para mis necesidades. Ahora mi pregunta es, ¿cuál es la forma más eficiente de usar esta biblioteca?

Esta es una de mis actividades

public class ExampleActivity2 extends SlidingActivity implements OnItemClickListener{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setBehindContentView(R.layout.list); getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width); Button btn = (Button) findViewById(R.id.button); //ListClass l=new ListClass(getApplicationContext()); ListView lv=(ListView) findViewById(R.id.lvname); String[] values = new String[] { "Android", "iPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); // Assign adapter to ListView lv.setAdapter(adapter); lv.setOnItemClickListener(this); getActionBar().setHomeButtonEnabled(true); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { switch(arg2){ case 1: Intent myIntent = new Intent(this,TestClass.class); startActivity(myIntent); break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home toggle(); return true; default: return super.onOptionsItemSelected(item); } } }

Como puede ver, esta implementación requiere que complete el menú lateral para cada actividad que utilizo. (En este ejemplo, cuando el usuario elige el elemento 1 del menú lateral, comienzo una nueva actividad llamada TestClass donde tengo que completar la vista de lista e implementar el onitemlistener de nuevo).

Quiero una manera de mover todo el código listView (con el onitemclicklistener) a un archivo separado que se puede llamar para todas las actividades (las vistas de detalles). Intenté mover el código a una clase diferente pero eclipse arroja un error de excepción de punto nulo . Agradecería mucho que alguien me pudiera guiar con un ejemplo sobre cómo usar esta biblioteca (no encontré las muestras muy útiles). Gracias por adelantado :)


Hay una manera simple de consolidar todo, mediante el uso de una clase BaseActivity que tiene todos los elementos comunes, como el código relacionado con la configuración del menú de diapositivas. Ahora todas las actividades que requieren la función de menú deslizante pueden extender BaseActivity lugar de SlidingActivity

Algo como esto:

public class BaseActivity extends SlidingActivity implements OnItemClickListener{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //content view is set by the activity which extends BaseActivity setBehindContentView(R.layout.list); getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width); //Button btn = (Button) findViewById(R.id.button); //ListClass l=new ListClass(getApplicationContext()); ListView lv=(ListView) findViewById(R.id.lvname); String[] values = new String[] { "Android", "iPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); // Assign adapter to ListView lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { /* * (non-Javadoc) * * @see * android.widget.AdapterView.OnItemClickListener#onItemClick * (android.widget.AdapterView, android.view.View, int, long) */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch(arg2){ case 1: Intent myIntent = new Intent(this,TestClass.class); startActivity(myIntent); break; } } }); getActionBar().setHomeButtonEnabled(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home toggle(); return true; default: return super.onOptionsItemSelected(item); } } }

Y su actividad de ejemplo se ve así:

public class ExampleActivity2 extends BaseActivity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button); } }

Recuerda siempre llamar a super o de lo contrario obtendrás excepciones de tiempo de ejecución


Si quiere evitar el ajetreo de la codificación, le recomendaría usar scringo . Es un tipo de complemento que puede agregar a su aplicación y tiene el menú deslizante como google + / FB / Youtube (puede elegir si el menú está a la derecha oa la izquierda). También tiene funciones integradas que puede elegir usar (como chatear, invitar amigos, etc.) y, por supuesto, agregar sus propios comandos al menú.