2016-11-22 1 views
1

Ich habe eine AppCompatSpinner, deren Einträge Ich habe in strings.xml Datei wie folgt gespeichert:Wie setze ich Text eines AppCompatSpinner? Alle Details zu

<string-array name="startDayList"> 
     <item>Today</item> 
     <item>Tomorrow</item> 
     <item>Pick a day..</item> 
</string-array> 

Danach als AppCompatSpinner die Einträge Angabe mit diesem Code: android:entries="@array/startDayList", den Titel oder den Text, der auf die gezeigt wird immer AppCompatSpinner ist Today.

Hier, wenn der Benutzer Pick a day.. Eintrag wählt, wird er eine DatePicker angezeigt und darf einen Tag/Datum wählen. Hier ist, wie (Fall 2): ​​

startDaySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

       DateFormat currentDateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
       startDayString = currentDateFormat.format(new Date()); 

       switch (i) { 
        case 0: 

         startDayString = currentDateFormat.format(new Date()); 
         break; 

        case 1: 

         Calendar calendar = Calendar.getInstance(); 

         calendar.add(Calendar.DAY_OF_YEAR, 1); 
         Date tomorrow = calendar.getTime(); 

         DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
         startDayString = dateFormat.format(tomorrow); 
         break; 

        case 2: 
         final Calendar c = Calendar.getInstance(); 
         mYearStartE = c.get(Calendar.YEAR); 
         mMonthStartE = c.get(Calendar.MONTH); 
         mDayStartE = c.get(Calendar.DAY_OF_MONTH); 

         DatePickerDialog datePickerDialog = new DatePickerDialog(PostSportRequest.this, 
           new DatePickerDialog.OnDateSetListener() { 

            @Override 
            public void onDateSet(DatePicker view, int year, 
                  int monthOfYear, int dayOfMonth) { 

             startDayString = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; 

             Toast.makeText(getBaseContext(), "startDayString: " + startDayString, Toast.LENGTH_SHORT).show(); 

            } 
           }, mYearStartE, mMonthStartE, mDayStartE); 
         datePickerDialog.show(); 
         break; 
       } 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) { 

      } 
     }); 

Dieser Code speichern, die in einer der startDayString Zeichenfolge gewählten Datum, aber der Text des AppCompatSpinner bleibt gesetzt werden als Pick a day..

Also, ich möchte wissen, dass, wie kann ich den Text/Titel des Drehfelds als Tag/Datum festlegen, das vom Benutzer gewählt wurde und nicht Pick a day..

Bitte lassen Sie es mich wissen.

Antwort

1

Set Text auf den Artikel anzuzeigen:

startDaySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(final AdapterView<?> adapterView, View view, int i, long l) { 


      DateFormat currentDateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
      startDayString = currentDateFormat.format(new Date()); 

      switch (i) { 
       case 0: 

        startDayString = currentDateFormat.format(new Date()); 
        break; 

       case 1: 

        Calendar calendar = Calendar.getInstance(); 

        calendar.add(Calendar.DAY_OF_YEAR, 1); 
        Date tomorrow = calendar.getTime(); 

        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
        startDayString = dateFormat.format(tomorrow); 
        break; 

       case 2: 
        final Calendar c = Calendar.getInstance(); 
        mYearStartE = c.get(Calendar.YEAR); 
        mMonthStartE = c.get(Calendar.MONTH); 
        mDayStartE = c.get(Calendar.DAY_OF_MONTH); 

        DatePickerDialog datePickerDialog = new DatePickerDialog(PurchaseActivity.this, 
          new DatePickerDialog.OnDateSetListener() { 

           @Override 
           public void onDateSet(DatePicker view, int year, 
                 int monthOfYear, int dayOfMonth) { 

            startDayString = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; 

            Toast.makeText(getBaseContext(), "startDayString: " + startDayString, Toast.LENGTH_SHORT).show(); 

            TextView mTextView = (TextView) adapterView.getSelectedView(); 
            mTextView.setText(startDayString); 
           } 
          }, mYearStartE, mMonthStartE, mDayStartE); 
        datePickerDialog.show(); 
        break; 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 
Verwandte Themen