2016-11-22 2 views
1

를 참조하십시오 그 항목이 같은 strings.xml 파일에 저장 한 AppCompatSpinner :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) { 

     } 
    });