首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能以片段形式将android.app.Application转换为android.app.Activity

不能以片段形式将android.app.Application转换为android.app.Activity
EN

Stack Overflow用户
提问于 2018-10-15 16:30:46
回答 1查看 2.9K关注 0票数 0

我使用Threeten时区获取android中的日期和时间。但是在AndroidThreeTen.init((应用程序)getContext())处得到一个错误;错误是"java.lang.ClassCastException: java.lang.ClassCastException无法转换为android.app.Application“。

这是我的代码:

代码语言:javascript
复制
package moneytracker.karthik.example.moneytracker.Display;

import android.app.Application;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.jakewharton.threetenabp.AndroidThreeTen;

import org.threeten.bp.*;


import java.util.ArrayList;
import java.util.List;

import moneytracker.karthik.example.moneytracker.Adapter.TimeAdapter;


import moneytracker.karthik.example.moneytracker.R;


public class WeekCash extends Fragment {
    private TimeAdapter Adapter;
    private RecyclerView recyclerView;

    private String[] WeekDays = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        AndroidThreeTen.init((Application) getContext());
        View rootView = inflater.inflate(R.layout.week_cash, container, false);
        recyclerView = rootView.findViewById(R.id.rc_totalDisplayWk);


        setRecycleView();
        return rootView;
    }

    public void setRecycleView() {
        Context context = getContext();


        Adapter = new TimeAdapter(context, WeekDays, getWeekDays());
        LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(Adapter);
    }

    public List<LocalDate> getWeekDays() {

       // AndroidThreeTen.init((Application) getContext());

        ZoneId z = ZoneId.of("Pacific/Auckland");  // Or ZoneId.of( "Africa/Tunis" )
        LocalDate today = LocalDate.now( z ) ;

        LocalDate localDate = today.with( org.threeten.bp.temporal.TemporalAdjusters.previousOrSame( DayOfWeek.SUNDAY ) ) ;
        List< LocalDate > dates = new ArrayList<>( 7 ) ;
        for( int i = 0 ; i < 7 ; i ++ ) {
            localDate = localDate.plusDays( i ) ;
            dates.add( localDate ) ;
        }
            return dates;

    }
}

甚至我也尝试了AndroidThreeTen.init((应用程序) getApplicationContext());。它表明AndroidThreeTen没有这种方法。请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-15 16:43:37

将代码行更改为:

代码语言:javascript
复制
AndroidThreeTen.init((Application) getContext());

至:

代码语言:javascript
复制
AndroidThreeTen.init((Application) getContext().getApplicationContext());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52821048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档