gpt4 book ai didi

java - 错误 : cannot find symbol method getSupportActionBar(), findViewById(int),getApplicationContext()

转载 作者:行者123 更新时间:2023-11-29 04:36:05 25 4
gpt4 key购买 nike

所以我的 ScheduleFragment 中有这段代码,我的目标是查看一个简单的日历查看器。但不幸的是,它得到了标题中提到的错误。即使我将“public class ScheduleFragment extends Fragment”更改为“public class ScheduleFragment extends AppCompatActivity”,它也会给@Override 一个错误。

@TargetApi(Build.VERSION_CODES.N)
public class ScheduleFragment extends Fragment {

CompactCalendarView compactCalendar;
private SimpleDateFormat dateFormatMonth = new SimpleDateFormat("MMM - yyyy", Locale.getDefault());


public ScheduleFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_schedule, container, false);

final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setTitle(null);

compactCalendar = (CompactCalendarView) findViewById(R.id.compactcalendar_view);
compactCalendar.setUseThreeLetterAbbreviation(true);

Event ev1 = new Event(Color.RED, 1477040400000L, "Teachers' Professional Day");
compactCalendar.addEvent(ev1);

compactCalendar.setListener(new CompactCalendarView.CompactCalendarViewListener() {
@Override
public void onDayClick(Date dateClicked) {
Context context = getApplicationContext();
if (dateClicked.toString().compareTo("Fri Oct 21 00:00:00 AST 2016") == 0) {
Toast.makeText(context, "Teachers' Professional Day", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(context, "No Events Planned for that day", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onMonthScroll(Date firstDayOfNewMonth) {
actionBar.setTitle(dateFormatMonth.format(firstDayOfNewMonth));
}
});

}

}

最佳答案

在 fragment 中,您不能直接调用findViewById(),必须使用您刚刚膨胀的 View 并在其上调用findViewById()
所以你的 onCreateView 代码将是,

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_schedule, container, false);
compactCalendar = (CompactCalendarView) v.findViewById(R.id.compactcalendar_view);
//Make sure that the view inflated above has these view elements which you are trying to initialize
.
.
.
}

getApplicationContext()类似,首先需要调用getContext(),然后再调用getApplicationContext()于是就变成了,

Context c = getContext().getApplicationContext();

同样适用于 getSupportActionBar();

关于java - 错误 : cannot find symbol method getSupportActionBar(), findViewById(int),getApplicationContext(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41453019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com