segundo - obtener datos de un edittext android
Valor de texto de TextView actualizado onclick (1)
Intente recuperar tab1 utilizando su instancia ContextualMenuView ( contextMenuView ):
tv = (TextView) contextualMenuView.findViewById(R.id.tab1);
Además, ¿podría intentar inflar su ContextualMenuView en el método onCreate () y crear una instancia de su TextView allí también?
Tengo una vista de cuadrícula en una actividad en la que intento mostrar un menú contextual cada vez que se toca un elemento de la grilla. Quiero que este menú contextual muestre un valor dinámico en una vista de texto (la posición del elemento de grilla intervenido). Estoy creando mi propio menú contextual porque no quiero una alerta o el menú contextual predeterminado de android. También estoy usando SDKs:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
Aquí está mi java.class para gridview
public class Grid_Items extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_items);
GridView gridView = (GridView) findViewById(R.id.gridViewLayout);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener() {
View contextualMenuView = null;
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// RelativeLayout that contains parent layout
RelativeLayout rootLayout = (RelativeLayout)findViewById(R.id.root);
// in case there is a context menu open, remove it
if(contextualMenuView!=null) {
rootLayout.removeView(contextualMenuView);
}
// inflate contextual menu
contextualMenuView = getLayoutInflater().inflate(R.layout.contextual_menu, rootLayout);
// sets values for the textview
TextView tv = (TextView) findViewById(R.id.tab1);
tv.setText("tab1 = "+String.valueOf(position));
}
- La primera vez que hago clic en un elemento de la cuadrícula, aparece mi menú contextual con el valor de texto correcto en la vista de texto
- La 2 ª vez y cada dos por tres, el menú aún está allí, pero el valor de texto de la vista de texto está vacío. Necesito que este valor se "actualice" cada vez que el usuario toca un elemento en la grilla.
diseño para la actividad gridview
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridViewLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center">
</GridView>
</RelativeLayout>
Diseño para el menú contextual que infló:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contextualMenuLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#ffffff">
<!-- -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_marginRight="10dip"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginBottom="10dip"
android:textSize="28sp"
android:textColor="#ff0000">
</TextView>
¿Qué me he perdido?