2012-02-18 16 views
5

Soy muy novato en Android. Necesito ayuda y tu sugerencia aquí.
Estoy trabajando en Android desde el pasado enero, tengo algunos problemas aquí. Todavía estoy trabajando en la aplicación para Android 2.3. Aplicación muy muy simple. He leído sobre la barra de acciones, y he sugerido a la biblioteca, como greendroid, sherlock actionbar y la última barra de acción de Johan Nilson. Todavía tengo dificultades para integrarlo en mi aplicación. Así que trato de crear mi propia barra de acción y el problema vino uno por uno. Uno de los siguientes: es difícil combinar la barra de acciones con mi ListView para permanecer en la parte superior de la pantalla, incluso la vista de lista se desplaza hacia abajo. Por fin, el diseño de la barra de acción generará en la cabecera de ListView:Agregar barra de acciones en ListActivity

View header = getLayoutInflater().inflate(R.layout.header, null); 
ListView listView = getListView(); 
listView.addHeaderView(header); 

y el botón de ImageButton & que no trabaja para evento click ..

//try action button in actionbar 
Menu1 = (Button) this.findViewById(id.button1); 
Menu1.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View v) 
    { 
     Toast.makeText(List_direktoriJson.this, "action bar..", Toast.LENGTH_LONG).show();   
    } 
}); 

Cómo cierto, si quiero la barra de acción todavía en la parte superior en el diseño de vista de lista? ¿Y por qué el botón y el botón de imagen no funcionan al hacer clic?

Respuesta

0

¿Por qué está agregando una barra de acciones al encabezado ListView? Si hace esto, la barra de acciones siempre se desplazará con el ListView. Agregue una barra de acciones al diseño de su ListActivity. Algo así como:

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 

    <include 
     android:id="@+id/action_bar" 
     layout="@layout/header" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- May be some other views --> 

</merge> 

Luego, en conjunto onCreate() vista del contenido de la actividad:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.layout_of_the_activity); 
    setListAdapter(...); 

    // get action bar view 
    View header = findViewById(R.id.action_bar); 

    // and then set click listeners. Note that findViewById called on header, not on this 
    Menu1 = (Button) header.findViewById(R.id.button1); 
    Menu1.setOnClickListener(...); 
} 

Article about <merge> and <include> tags.

2

Si usted puede llegar a incluir una de las bibliotecas de la barra de acción, tales como Sherlock, será mucho más sencillo:

private class YourListActivity extends SherlockListActivity { 

} 
Cuestiones relacionadas