Escolar Documentos
Profissional Documentos
Cultura Documentos
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Obtenemos las referencias a los componentes
labelResultado = (TextView)findViewById(R.id.labelResultado);
listadoPrincipal =
(ListView)findViewById(R.id.ListadoPrincipal);
//Rellenamos la lista con datos de ejemplo
adaptador = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, datos);
listadoPrincipal.setAdapter(adaptador);
//Asociamos los mens contextuales a los componentes
registerForContextMenu(labelResultado);
registerForContextMenu(listadoPrincipal);
} // end onCreate
A continuacin, de igual forma que hicimos con los mens bsicos para
crear las opciones disponibles con el mtodo onCreateOptionsMenu(),
vamos a construir los mens contextuales asociados a los diferentes
componentes de la aplicacin con el mtodo onCreateContextMenu().
@Override
// Mtodo donde definimos el men contextual cuando se despliega
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
//Inflador del men contextual
MenuInflater inflater = getMenuInflater();
// Si el componente que vamos a dibujar es la etiqueta usamos
// el fichero XML correspondiente
if(v.getId() == R.id.labelResultado)
inflater.inflate(R.menu.menu_context_etiqueta, menu);
// Si el componente que vamos a dibujar es el ListView usamos
// el fichero XML correspondiente
else if(v.getId() == R.id.ListadoPrincipal)
{
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo)menuInfo;
// Definimos la cabecera del men contextual
menu.setHeaderTitle(
listadoPrincipal.getAdapter().getItem(info.position).toString());
// Inflamos el men contextual
inflater.inflate(R.menu.menu_context_lista, menu);
}
}
@Override
// Si el usuario selecciona una opcin del men contextual mostramos
// la opcin seleccionada en la etiqueta
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info =
(AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
// Se selecciona la opcin 1 de men contextual de la etiqueta
case R.id.ContextLabelOp1:
labelResultado.setText("Etiqueta: Opcin 1");
return true;
// Se selecciona la opcin 2 de men contextual de la etiqueta
case R.id.ContextLabelOp2:
labelResultado.setText("Etiqueta: Opcin 2");
return true;
// Se selecciona la opcin "Editar texto opcin" de men
contextual de la etiqueta
case R.id.EditTextOp:
labelResultado.setText("Opcin " + info.position + "
listado: Cambio de texto");
// Cambiamos el contenido de la matriz de datos
datos[info.position]="Opcin "+info.position+" listado
modificado";
// Reiniciamos el adaptador para que recargue los datos y
actualice el ListBox
adaptador.notifyDataSetChanged();
return true;
android:layout_width="fill_parent" android:text="Opcin
seleccionada:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_marginLeft="3dip"
android:layout_marginTop="20dip"></TextView>
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/labelResultado"
android:text="Ninguna"
android:textAppearance="?android:attr/textAppearanceLarge"
android:background="#0000FF" android:layout_marginLeft="3dip"
android:layout_marginRight="3dip"
android:layout_marginTop="3dip"
android:layout_gravity="center_horizontal"></TextView>
<!-- Esta Vista dibuja una lnea en el UI -->
<View android:layout_height="4dip" android:layout_width="wrap_content"
android:background="#FF909090" android:layout_marginTop="2dip"/>
<ListView android:id="@+id/ListadoPrincipal"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
</LinearLayout>