elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Ayuda]ListView no responde no detecta pulsaciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]ListView no responde no detecta pulsaciones  (Leído 1,344 veces)
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
[Ayuda]ListView no responde no detecta pulsaciones
« en: 10 Marzo 2017, 23:38 pm »

Hola a todos tengo un problema con mi app, resulta que tengo 1 DrawerLayout con 1 listView lateral, que tiene 3 opciones, cada una al hacerle un click me carga un Fragment diferente en la pantalla central de mi Activity ocupando todo el espacio disponible.

El problema es que cuando cargo un fragment por primera vez, sea cual sea(Pulsando en el listView lateral), lo hace perfecto, pero luego al intentar cargar otro Fragment por segunda vez no puedo hacerlo, ya que el listView al darle click a otra opción este se vuelve a ocultar, y no puedo hacer el click para mostrar mi otro Fragment  :-\

Este es mi código del MainActivity:

Código
  1. package com.funcioneslineales2.funcioneslineales2;
  2.  
  3. import android.app.FragmentManager;
  4. import android.support.v4.app.FragmentActivity;
  5. import android.support.v4.app.FragmentTransaction;
  6. import android.support.v4.view.GravityCompat;
  7. import android.support.v4.widget.DrawerLayout;
  8. import android.support.v7.app.AlertDialog;
  9. import android.support.v7.app.AppCompatActivity;
  10. import android.os.Bundle;
  11. import android.view.View;
  12. import android.widget.AdapterView;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.ListView;
  15. import android.widget.Toast;
  16.  
  17. public class MainActivity extends AppCompatActivity {
  18.  
  19.    ListView listView;
  20.  
  21.    @Override
  22.    protected void onCreate(Bundle savedInstanceState) {
  23.        super.onCreate(savedInstanceState);
  24.        setContentView(R.layout.activity_main);
  25.  
  26.  
  27.        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.asd);
  28.        drawer.closeDrawer(GravityCompat.START);
  29.        String[] opciones = {"Pendiente y ordenada", "Ecuación punto pendiente", "Pasa por (x1,y1) y (x2,y2)"};
  30.  
  31.        listView = (ListView) findViewById(R.id.listView);
  32.        ArrayAdapter<String> adapterListView = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, opciones);
  33.        listView.setAdapter(adapterListView);
  34.        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  35.            @Override
  36.            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  37.                if(position == 0) {
  38.                    setFragment(0);
  39.                }
  40.                if(position == 1) {
  41.                    setFragment(1);
  42.                }
  43.                if(position == 2) {
  44.                    setFragment(1);
  45.                }
  46.            }
  47.        });
  48.  
  49.    }
  50.  
  51.    public void setFragment(int position) {
  52.        android.support.v4.app.FragmentManager fragmentManager;
  53.        FragmentTransaction fragmentTransaction;
  54.        switch (position) {
  55.            case 0:
  56.                fragmentManager = getSupportFragmentManager();
  57.                fragmentTransaction = fragmentManager.beginTransaction();
  58.                FuncionLinealPendienteOrdenada funcionLinealPendienteOrdenada = new FuncionLinealPendienteOrdenada();
  59.                fragmentTransaction.replace(R.id.asd, funcionLinealPendienteOrdenada);
  60.                fragmentTransaction.commit();
  61.                break;
  62.            case 1:
  63.                fragmentManager = getSupportFragmentManager();
  64.                fragmentTransaction = fragmentManager.beginTransaction();
  65.                FuncionLinealPendiente1Punto funcionLinealPendiente1Punto = new FuncionLinealPendiente1Punto();
  66.                fragmentTransaction.replace(R.id.asd, funcionLinealPendiente1Punto);
  67.                fragmentTransaction.commit();
  68.                break;
  69.        }
  70.    }
  71. }
  72.  
  73.  

Y este es el Layout del MainActivity:

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    xmlns:tools="http://schemas.android.com/tools"
  4.    android:layout_width="match_parent"
  5.    android:layout_height="match_parent"
  6.    tools:context="com.funcioneslineales2.funcioneslineales2.MainActivity"
  7.    android:id="@+id/asd">
  8.  
  9.    <include
  10.        android:layout_width="wrap_content"
  11.        android:layout_height="wrap_content"
  12.        layout="@layout/drawer_layout"
  13.        android:layout_gravity="start"/>
  14. </android.support.v4.widget.DrawerLayout>
  15.  
  16.  

Layout cabezera:

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    android:orientation="vertical" android:layout_width="match_parent"
  4.    android:layout_height="wrap_content"
  5.    android:background="#92ea17">
  6.  
  7.    <ImageView
  8.        android:layout_width="wrap_content"
  9.        android:layout_height="wrap_content"
  10.        android:id="@+id/imageView"
  11.        android:layout_alignParentTop="true"
  12.        android:layout_alignParentLeft="true"
  13.        android:layout_alignParentStart="true"
  14.        android:src="@android:drawable/sym_def_app_icon"
  15.        android:padding="20dp"/>
  16.  
  17.    <TextView
  18.        android:layout_width="wrap_content"
  19.        android:layout_height="wrap_content"
  20.        android:textAppearance="?android:attr/textAppearanceLarge"
  21.        android:text="Funciones lineales"
  22.        android:id="@+id/textView"
  23.        android:layout_centerVertical="true"
  24.        android:layout_toRightOf="@+id/imageView"
  25.        android:layout_toEndOf="@+id/imageView"
  26.        android:textStyle="bold"
  27.        android:layout_marginLeft="10dp" />
  28. </RelativeLayout>
  29.  

Layout del ListView:

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    android:orientation="vertical" android:layout_width="match_parent"
  4.    android:layout_height="match_parent">
  5.  
  6.    <ListView
  7.        android:layout_width="wrap_content"
  8.        android:layout_height="match_parent"
  9.        android:id="@+id/listView"
  10.        android:layout_alignParentTop="true"
  11.        android:layout_alignParentLeft="true"
  12.        android:layout_alignParentStart="true" />
  13. </RelativeLayout>
  14.  

Y el layout DrawerLayout(Donde uno la cabezera y el listview):

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    android:orientation="vertical" android:layout_width="match_parent"
  4.    android:layout_height="match_parent"
  5.    android:background="#cfc4c4">
  6.  
  7.    <include
  8.        android:layout_width="match_parent"
  9.        android:layout_height="wrap_content"
  10.        layout="@layout/cabezera"
  11.        android:layout_alignParentTop="true"
  12.        android:layout_alignParentLeft="true"
  13.        android:layout_alignParentStart="true"
  14.        android:id="@+id/include" />
  15.  
  16.    <include
  17.        android:layout_width="wrap_content"
  18.        android:layout_height="wrap_content"
  19.        layout="@layout/lista_drawer"
  20.        android:layout_below="@+id/include"
  21.        android:layout_alignParentLeft="true"
  22.        android:layout_alignParentStart="true" />
  23. </RelativeLayout>
  24.  

Y las clases de los fragments:

Código
  1. import android.os.Bundle;
  2. import android.support.v4.app.Fragment;
  3. import android.support.v7.app.AlertDialog;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9.  
  10. import java.util.zip.Inflater;
  11.  
  12.  
  13. /**
  14.  * A simple {@link Fragment} subclass.
  15.  */
  16. public class FuncionLinealPendienteOrdenada extends Fragment {
  17.  
  18.  
  19.    EditText etPendiente, etOrdenadaAlOrigen;
  20.    Button btnCalcular;
  21.    public FuncionLinealPendienteOrdenada() {
  22.        // Required empty public constructor
  23.    }
  24.  
  25.  
  26.    @Override
  27.    public View onCreateView(LayoutInflater inflater, ViewGroup container,
  28.                             Bundle savedInstanceState) {
  29.        // Inflate the layout for this fragment
  30.  
  31.        View view = inflater.inflate(R.layout.fragment_funcion_lineal_pendiente_ordenada, container, false);
  32.        etPendiente = (EditText)view.findViewById(R.id.editText);
  33.        etOrdenadaAlOrigen = (EditText)view.findViewById(R.id.editText2);
  34.        btnCalcular = (Button)view.findViewById(R.id.button);
  35.        btnCalcular.setOnClickListener(new View.OnClickListener() {
  36.            @Override
  37.            public void onClick(View view) {
  38.                calcularPuntos();
  39.            }
  40.        });
  41.  
  42.        return view;
  43.    }
  44.  
  45.    public void calcularPuntos() {
  46.        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
  47.        builder.setTitle("Resultado");
  48.        builder.setMessage(new FuncionLineal().calcularPuntos2(Double.parseDouble(etPendiente.getText().toString()), Double.parseDouble(etOrdenadaAlOrigen.getText().toString())));
  49.        builder.setPositiveButton("OK",null);
  50.        builder.create();
  51.        builder.show();
  52.    }
  53.  
  54. }
  55.  
  56.  


Código
  1. import android.os.Bundle;
  2. import android.support.v4.app.Fragment;
  3. import android.support.v7.app.AlertDialog;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9.  
  10.  
  11. /**
  12.  * A simple {@link Fragment} subclass.
  13.  */
  14. public class FuncionLinealPendiente1Punto extends Fragment {
  15.  
  16.    EditText etPendiente, x1, y1;
  17.    Button btnCalcular;
  18.    public FuncionLinealPendiente1Punto() {
  19.        // Required empty public constructor
  20.    }
  21.  
  22.  
  23.    @Override
  24.    public View onCreateView(LayoutInflater inflater, ViewGroup container,
  25.                             Bundle savedInstanceState) {
  26.        // Inflate the layout for this fragment
  27.        View view = inflater.inflate(R.layout.fragment_funcion_lineal_pendiente1_punto, container, false);
  28.        etPendiente = (EditText)view.findViewById(R.id.editText3);
  29.        x1 = (EditText)view.findViewById(R.id.editText4);
  30.        y1 = (EditText)view.findViewById(R.id.editText5);
  31.        btnCalcular = (Button)view.findViewById(R.id.button2);
  32.        btnCalcular.setOnClickListener(new View.OnClickListener() {
  33.            @Override
  34.            public void onClick(View view) {
  35.                calcularPuntos();
  36.            }
  37.        });
  38.  
  39.        return view;
  40.    }
  41.  
  42.    public void calcularPuntos() {
  43.        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
  44.        builder.setTitle("Resultado");
  45.        builder.setMessage(new FuncionLineal().calcularPuntosSinOrdenada(Double.parseDouble(etPendiente.getText().toString()), Double.parseDouble(x1.getText().toString()), Double.parseDouble(y1.getText().toString())));
  46.        builder.setPositiveButton("OK",null);
  47.        builder.create();
  48.        builder.show();
  49.    }
  50.  
  51. }
  52.  
  53.  

Gracias de antemano.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda listview
Programación Visual Basic
josemer 0 1,122 Último mensaje 15 Febrero 2006, 23:33 pm
por josemer
Listview ayuda plz...
Programación Visual Basic
visualfree 2 2,135 Último mensaje 6 Noviembre 2006, 16:26 pm
por CeLaYa
[Solucionado]ping a maquina sino responde fail,si responde okay,start process
Scripting
Anonymous250 4 7,044 Último mensaje 7 Julio 2012, 03:53 am
por Anonymous250
Listview header modificado en listview vbnet
.NET (C#, VB.NET, ASP)
Juan Sanchez 3 7,389 Último mensaje 30 Enero 2016, 06:04 am
por Eleкtro
Ayuda con tecla automática, no responde.
.NET (C#, VB.NET, ASP)
cael1011 1 1,700 Último mensaje 23 Abril 2016, 01:07 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines