2016-11-22 4 views
1

У меня есть AppCompatSpinner, чьи записи я накопил в strings.xml файле так:Как установить текст AppCompatSpinner? Пожалуйста, смотрите сведения

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

После указания этого в качестве записей AppCompatSpinner, используя этот код: android:entries="@array/startDayList", заголовок или текст, который становится показанный на AppCompatSpinner - Today.

Здесь, когда пользователь выбирает запись Pick a day.., ему отображается DatePicker и разрешено выбирать день/дату. Вот как (пример 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) { 

      } 
     }); 

Этот код сохранения даты, выбранной в в startDayString строке, но текст AppCompatSpinner остается быть установлен как Pick a day..

Итак, я хочу знать, что, как могу ли я указать текст/название счетчика как день/дату, выбранные пользователем, а не Pick a day..

Пожалуйста, дайте мне знать.

ответ

1

Набор текста на элементы просмотра:

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) { 

     } 
    }); 

 Смежные вопросы

  • Нет связанных вопросов^_^