错误:(36,74)错误:类型不兼容:片段无法转换为上下文 [英] Error:(36, 74) error: incompatible types: Fragment cannot be converted to Context
问题描述
我有一个称为CalendarFragment的片段.尝试执行程序时出现此错误.错误:(36,74)错误:类型不兼容:CalendarFragment无法转换为上下文
I have a fragment called CalendarFragment. I am getting this error when i tried executing the program. Error:(36, 74) error: incompatible types: CalendarFragment cannot be converted to Context
CalendarFragment:
CalendarFragment :
package app.pal.study.samplestudy;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import java.util.Date;
import java.util.List;
public class CalendarFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_calendar, container, false);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_calendar);
}
@Override
public void onResume() {
super.onResume();
refresh();
}
private void refresh() {
CalendarEventDataSource dataSource = new CalendarEventDataSource(this);
dataSource.openReadOnlyDB();
final List<CalendarEvent> calendarEvents = dataSource.getAllEvents();
dataSource.close();
CalAllEventsListAdapter adapter = new CalAllEventsListAdapter(calendarEvents);
ListView listView = (ListView) getView().findViewById(R.id.all_event_list);
listView.setAdapter(adapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
end();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
end();
}
private void end() {
Intent data = new Intent();
data.putExtra(Constants.DATE_KEY, (Date) getIntent().getExtras().get(Constants.DATE_KEY));
setResult(RESULT_OK, data);
finish();
}
}
推荐答案
片段代表活动中的行为或用户界面的一部分.
A Fragment represents a behavior or a portion of user interface in an Activity.
-
调用
onCreateView
而不是onCreate
.删除onCreate()
调用 getActivity(),而不是此 . getActivity()返回此片段当前与之关联的活动.
CalendarEventDataSource dataSource =新CalendarEventDataSource(getActivity());
CalendarEventDataSource dataSource = new CalendarEventDataSource(getActivity());
问题
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_calendar);
}
此代码为Activity.您应该使用您的 onCreateView
方法.
This code for Activity . You should use your onCreateView
method .
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_calendar, container, false);
return rootView;
}
http://developer.android.com/intl/es/guide/components/fragments.html
这篇关于错误:(36,74)错误:类型不兼容:片段无法转换为上下文的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!