Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Combinación de ListActivity y ActionBarActivity

Actualmente estoy construyendo un SDK mínimo de 10, así que tengo que usar la biblioteca android-support-v7-appcompat para implementar ActionBar . He configurado la ActionBar , pero quiero añadir una ListActivity , sin embargo esto requiere extender mi clase y Java no tiene inheritance múltiple. ¿Que debería hacer?

 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bar MenuInflater inflater = getMenuInflater(); getSupportActionBar().setIcon(R.drawable.ic_action_search); getSupportActionBar().setDisplayShowHomeEnabled(false); getSupportActionBar().setDisplayShowTitleEnabled(false); inflater.inflate(R.menu.main_activity_actions, menu); return super.onCreateOptionsMenu(menu); } } 

2 Solutions collect form web for “Combinación de ListActivity y ActionBarActivity”

ListActivity no se ha portado a AppCompat. Probablemente porque deberías considerarlo 'obsoleto', y usar un ListFragment.

Los fragmentos funcionarán con ActionBarActivity, sólo asegúrese de que son fragmentos de la biblioteca de soporte.

Lea este enlace sobre fragmentos.

Para su caso de uso, yo sólo definiría el fragmento en xml.

La forma más sencilla de hacerlo es utilizar un ListFragment dentro de ActionBarActivity . Lo hice así:

 public class MyActivity extends ActionBarActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setDisplayHomeAsUpEnabled(true); MyFragment fragment = new MyFragment(); getSupportFragmentManager().beginTransaction().replace(android.R.id.content, fragment).commit(); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: { finish(); break; } default: { break; } } return true; } public static class MyFragment extends ListFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... } public void onListItemClick(ListView listView, View view, int position, long id) { ... } } } 

De esta manera ni siquiera necesita un xml para ello, y funciona bien.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.