TEL:400-8793-956
当前位置:程序、服务器

如何在 Stormy 中列出一周中的几天以进行扩展预测

提问者: 近期获赞: 浏览人数: 发布时间:2021-09-22 08:52:51

 问:我已经为 Stormy Android 应用程序构建了 7 天预测活动。不幸的是,扩展预测在 7 天预测的每一天旁边都显示“星期一”。

 
任何人都对如何列出从今天开始的一周中接下来的 7 天有一些提示或想法。此应用程序使用 ListView 布局进行扩展预测。
 
 日期适配器
导入 android.content.Context ; 
导入 android.view.LayoutInflater ;
导入 android.view.View ;
导入 android.view.ViewGroup ;
导入 android.widget.BaseAdapter ;
导入 android.widget.ImageView ;
导入 android.widget.TextView ;
公共类DayAdapter扩展BaseAdapter {私有上下文mContext ; 私人日[] mDays ; 公共DayAdapter (上下文上下文
 
      , 天[] 天)  { 
mContext =上下文; mDays =天数;} @Override public int getCount () {返回mDays 。长度;} @Override public Object getItem ( int position ) { return mDays [ position ]; } @Override public long getItemId ( int position ) {          
 
        返回 0 ;  // 我们不会使用它。标记项以便于参考
} @Override public View getView ( int position , View convertView , ViewGroup parent ) { ViewHolder holder ; if ( convertView == null ) { // 全新的convertView = LayoutInflater . 来自(mContext )。膨胀( R . layout .    
 
              daily_list_item ,  null ); 
持有人=新的ViewHolder ();// holder.iconImageView = (ImageView) convertView.findViewById(R.id.iconImageView); 持有人。温度标签= ( TextView ) convertView 。findViewById ( R . id . temperatureLabel ); 持有人。dayNameLabel = ( TextView ) convertView 。findViewById ( R . id . dayNameLabel );               
 
            持有人。lowTempLabel  =  ( TextView )  convertView 。findViewById ( R . id . lowTempLabel ); 
转换视图。设置标签(持有人);} else { holder = ( ViewHolder ) convertView 。getTag (); } Day day = mDays [位置]; // holder.iconImageView.setImageResource(day.getIconId()); 持有人。
 
        温度标签。setText ( day . getTemperatureMax ()  +  "" ); 
持有人。低临时标签。的setText (天。getTemperatureMin ()+ “” ); 持有人。日名标签。的setText (天。getDayOfTheWeek ()); 返回转换视图;}私有静态类ViewHolder { ImageView iconImageView ;          
 
          // 默认为 public 
TextView temperatureLabel ; TextView的lowTempLabel ; TextView dayNameLabel ; } }         
 
 日.java
包 com.joshbgold.WeatherBuddy ; 
导入android.os.Parcel ;导入android.os.Parcelable ;导入java.text.SimpleDateFormat ; 导入java.util.Date ; 导入java.util.TimeZone ; 公共类日实现Parcelable {私人长期的mtime ; 私人字符串mSummary ; 私人字符串mIcon ; 私人字符串mTimeZone ; 私人双人
 
      mTemperatureMax ; 
私人双mTemperatureMin ; 私人长mSunrise ; 私人长mSunset ; 私人双mMoonPhase ; public long getTime () { return mTime ; } public void setTime ( long time ) { mTime = time ; } public String getSummary () { return mSummary ; }      
  
    public  void  setSummary ( String  summary )  { 
mSummary = summary ; } public int getTemperatureMax () { return ( int ) Math . 圆形(mTemperatureMax );} public void setTemperatureMax ( double temperatureMax ) { mTemperatureMax = temperatureMax ; }公共双getTemperatureMin () {          
 
        返回 ( int )数学。圆形(mTemperatureMin );
} public void setTemperatureMin ( double temperatureMin ) { mTemperatureMin = temperatureMin ; } public String getIcon () { return mIcon ; } public void setIcon ( String icon ) { mIcon = icon ; }公共字符串getTimeZone获取    
 
      ()  {
返回mTimeZone ; } public void setTimeZone ( String timeZone ) { mTimeZone = timeZone ; } public int getIconId () {返回预测。getIconId ( mIcon ); } public String getDayOfTheWeek () { SimpleDateFormat formatter = new SimpleDateFormat ( "EEEE" ); 格式化程序。         
 
        setTimeZone ( TimeZone . getTimeZone ( mTimeZone )); 
日期日期=新日期(); 字符串dayOfTheWeek =格式化程序。格式(日期);返回dayOfTheWeek ;} @Override public int describeContents () { return 0 ; } @覆盖公共无效writeToParcel (包裹DEST ,INT标志)            
 
          {
目标。writeLong ( mTime ); 目的地。writeString ( mSummary ); 目的地。writeDouble ( mTemperatureMax ); 目的地。writeDouble ( mTemperatureMin ); 目的地。writeString ( mIcon ); 目的地。writeString ( mTimeZone ); }私人日(包裹在){ mTime = in . 读长        
 
          (); 
mSummary =中。读取字符串(); mTemperatureMax =中。读双(); mTemperatureMin =中。读双(); mIcon =中。读取字符串(); mTimeZone =中。读取字符串(); } public Day () { } public static final Creator < Day > CREATOR = new Creator < Day          
 
           >() { 
@覆盖公共日createFromParcel (包裹源){返回新日(源); } @Override public Day [] newArray ( int size ) { return new Day [ size ]; } }; public String getMoonPhaseDescription () { String phaseDescription ; 如果( mMoonPhase == 0        
 
           )  { 
phaseDescription = "新月" ; } else if ( mMoonPhase > 0 && mMoonPhase < 0.25 ) { phaseDescription = " waxing crescent" ; } else if ( mMoonPhase == 0.25 ) { phaseDescription = "第一季度" ; } else if ( mMoonPhase > 0.25 && mMoonPhase < 0.5 ) {              
     
            phaseDescription  =  "打蜡凸起" ; 
} else if ( mMoonPhase == 0.5 ) { phaseDescription = "满月" ; } else if ( mMoonPhase > 0.5 && mMoonPhase < 0.75 ) { phaseDescription = " waing gibbous " ; } else if ( mMoonPhase == 0.75 ) { phaseDescription = "last季度" ; }              
 
         else  if  ( mMoonPhase  >  0.75  &&  mMoonPhase  <  1 )  { 
phaseDescription = "衰弱的新月" ; } else phaseDescription = "--" ; 返回阶段描述;} public void setMoonPhase ( double moonPhase ) { mMoonPhase = moonPhase ; } public long getSunrise () { return mSunrise ; }              
 
    public  String  getFormattedSunriseTime (){   //将我们从 API 接收到的 Unix 时间转换为人类可读的时间
SimpleDateFormat formatter = new SimpleDateFormat ( "h:mm" ); 格式化程序。setTimeZone (时区。getTimeZone获取(getTimeZone获取())); 日期dateTime =新日期( getSunrise () * 1000 ); 返回格式化程序。格式(日期时间);}公开的            
 
     void  setSunrise (长 日出) { 
mSunrise =日出;} public long getSunset () { return mSunset ; } public String getFormattedSunsetTime (){ //将我们从 API 接收到的 Unix 时间转换为人类可读的时间SimpleDateFormat formatter = new SimpleDateFormat ( "h:mm" ); 格式化程序。setTimeZone ( TimeZone . getTimeZone ( getTimeZone          
 
        ())); 
日期dateTime =新日期( getSunset () * 1000 ); 返回格式化程序。格式(日期时间);} public void setSunset (长日落){ mSunset = sunset ; } }       
         
    
答:Getter 通常不应该有参数,因为它们已经与调用它们的对象相关联。将其调用为 day.getDayOfTheWeek(day) 是多余的,因为它已经可以访问 day 中的每个字段。它可以而且应该被称为 day.getDayOfTheWeek()。
 
请注意,我将其称为“getter”,尽管它比仅返回成员变量的值要复杂一些。这在类之外是无关紧要的,因为,如果您还记得,类应该像黑匣子一样工作,并且任何 get..() 都应该返回有关对象的相关信息,而不管它如何获取它。另一方面是在类内部,您返回的内容应该与对象的成员变量相关。而且,你错过了一个关键:当日预测是什么时候。
上一篇: 在我的 mac 上编译不工作!
下一篇: 理解大于符号 Python ">"
城市网站导航:无锡网站建设 徐州企业网站定制 常州网站开发哪家好 苏州网站改版 南通网站开发 连云港网站建设 淮安网站建设公司 盐城网站定制 扬州网站改版公司 镇江网站开发 泰州高端网站制作 宿迁高端网站开发 江阴高端网站开发 宜兴建设网站 新沂建设网站 邳州建设网站 常熟建设网站 张家港网站改版 昆山公司网站开发 太仓高端网站制作 丹阳高端网站制作 句容专业建站 泰兴网站制作公司 合肥网站建设 芜湖网站制作 蚌埠网站建设 淮南网站制作哪家好 马鞍山网站建设 铜陵网站制作公司 安庆网站建设公司 黄山网站制作 滁州网站建设 阜阳网站设计 六安网站建设 亳州网站制作 宣城网站建设 巢湖网站建设哪家好 桐城网站制作 天长网站建设 明光网站建设 全椒网站建设 扬中网站建设公司 城市小程序导航: