2012-12-22 4 views
0

Je travaille sur une application tablette Android avec des formes un peu complexes (mise en page a ListView et la mise en page avec le formulaire inclus, donc je dois gonfler EditText). Mon idée est que si je clique sur un TextView où la date est montrée le DataPicker serait montré dans la boîte de dialogue.Android ne détecte pas cliquer sur EditText

Le problème est que le clic n'est pas détecté. Il n'y a pas de journaux.

Java:

public static EditText datep; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.admissions_all); 

     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 

     View inf = LayoutInflater.from(getApplicationContext()).inflate(R.layout.admissions, null); 
     datep = (EditText) inf.findViewById(R.id.date_value); 

     datep.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Log.i("Date", "You clicked me mate!"); 
       showDatePickerDialog(v); 
      } 
     }); 

    } 

    public void showDatePickerDialog(View v) { 
     DialogFragment newFragment = new DatePickerFragment(); 
     newFragment.show(getFragmentManager(), "datePicker"); 
     Log.i("Date", "I want to show datePicker"); 
    } 

    public static class DatePickerFragment extends DialogFragment 
    implements DatePickerDialog.OnDateSetListener { 

     @Override 
     public Dialog onCreateDialog(Bundle savedInstanceState) { 
      // Use the current date as the default date in the picker 
      final Calendar c = Calendar.getInstance(); 
      int year = c.get(Calendar.YEAR); 
      int month = c.get(Calendar.MONTH); 
      int day= c.get(Calendar.DAY_OF_MONTH); 

      // Create a new instance of DatePickerDialog and return it 
      return new DatePickerDialog(getActivity(), this, year, month, day); 
     } 

     public void onDateSet(DatePicker view, int year, int month, int day) { 
      datep.setText(day + "." + month+ "." + year); 
     } 
    } 

XML:

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/general" 
     android:layout_alignRight="@id/general" 
     android:layout_below="@+id/general" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="30dp" > 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text="Data" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <View 
      android:id="@+id/line" 
      android:layout_width="wrap_content" 
      android:layout_height="1dp" 
      android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
      android:layout_below="@+id/title" 
      android:background="#333333" /> 

     <EditText 
      android:id="@+id/date_value" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/line" 
      android:layout_marginLeft="5dp" 
      android:layout_marginTop="5dp" 
      android:layout_toRightOf="@+id/date_desc" 
      android:ems="9" 
      android:inputType="date" > 
     </EditText> 

     <TextView 
      android:id="@+id/date_desc" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/date_value" 
      android:layout_alignBottom="@+id/date_value" 
      android:layout_alignParentLeft="true" 
      android:text="Date:" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

</RelativeLayout> 

Je suivais ceci: http://developer.android.com/guide/topics/ui/controls/pickers.html

+0

pouvez-vous voir le journal à l'intérieur onClick. –

+0

Non, il n'y a pas de journaux – Soriyyx

+0

poster votre XML aussi. – RobinHood

Répondre

0

Je ne vois pas dateup.setclickable(true);, essayez d'ajouter ceci. Peut-être que c'est pourquoi ce n'est pas le travail, Vous pouvez également déboguer et voir, s'il appelle le onlciklistner ou non

J'ai vu que vous avez écrit quelque chose comme ça.

datep = (EditText) inf.findViewById(R.id.date_value); 

quand vous avez ce

setContentView(R.layout.admissions_all); 

Cela signifie que vous editText est dans une autre activité, mais vous définissez son onclickListner dans un autre, il ne fonctionnera pas. Initialiser son onlcikListner dans l'activité, cette vue de contenu est inf.xml. Si tout cela ne va pas aider s'il vous plaît ajouter une partie de votre code

Cordialement Hayk Nahapetyan

0

Pourriez-vous changer le DatePickerFragment à DatePickerDialog. Ensuite, faites un DatePickerDialog.show(); Quelque chose comme:

DatePickerDialog datePickerDialog = null; 
datep.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Log.i("Date", "You clicked me mate!"); 
      showDatePickerDialog(); 
     } 
    }); 

private void showDatePickerDialog() { 
    datePickerDialog = new DatePickerDialog(context, new DateSetListener(), year, month, day); 
    datePickerDialog.show(); 
} 
Questions connexes