- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我收到以下错误:“方法 getSupportFragmentManager() 在我的 fragment 文件中未定义类型 new View.OnClickListener(){}”下面。
我有通过 ABS 引用的兼容性库和适当的导入。我用兼容性库重新安装了 ABS 库,清理了项目,重新启动了 Eclipse,但没有任何效果。
基本上,我试图让 fragment 通过对话框 fragment 显示日期选择器。选择日期后,必须将其返回到 fragment ,以便根据该日期计算信息。
这是我的 fragment 的代码:
package com.owentech.abstabsviewpager;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import com.actionbarsherlock.app.SherlockFragment;
public class ObstetricsFragment1 extends SherlockFragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
//Fragment Layout
View view = inflater.inflate(R.layout.obstetricsfragment1, container, false);
Button mPickLMPDate = (Button) view.findViewById(R.id.pickLMPDate);
mPickLMPDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LMPDatePickerDialogFragment d = LMPDatePickerDialogFragment.newInstance();
d.show(getSupportFragmentManager(), "dialog");
}
});
return view;
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
// TODO Auto-generated method stub
return null;
}
}
这是对话框 fragment 的代码:
package com.owentech.abstabsviewpager;
import android.app.Dialog;
import android.os.Bundle;
import android.widget.DatePicker;
import android.app.DatePickerDialog;
public class LMPDatePickerDialogFragment extends ObstetricsFragment1 implements DatePickerDialog.OnDateSetListener {
static LMPDatePickerDialogFragment newInstance() {
LMPDatePickerDialogFragment d = new LMPDatePickerDialogFragment();
return d;
}
private int mLMPYear;
private int mLMPMonth;
private int mLMPDay;
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new DatePickerDialog(getActivity(), this, mLMPYear, mLMPMonth, mLMPDay);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
mLMPYear = year;
mLMPMonth = month;
mLMPDay = day;
}
}
最后,这是我的 Activity 的代码:
package com.owentech.abstabsviewpager;
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import android.widget.TextView;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.app.ActionBar.Tab;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
public class Obstetrics extends SherlockFragmentActivity
{
ViewPager mViewPager;
TabsAdapter mTabsAdapter;
TextView tabCenter;
TextView tabText;
// START Action Bar Menu Items
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
switch (item.getItemId()){
case R.id.menuLog:
ChangeLog cl = new ChangeLog(this);
cl.getFullLogDialog().show();
return true;
case R.id.menuEmail:
Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:support@medicaldoctorapps.com"));
startActivity(emailIntent);
return true;
case R.id.menuRate:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=appinventor.ai_shawn_m_gee.MedicalDoctor"));
startActivity(browserIntent);
return true;
case android.R.id.home:
// App icon in action bar clicked; go home
Intent intent = new Intent(this, Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
case R.id.menuExit:
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
//END Action Bar Menu Items
// START Tabs View Pager (Add tabs by adding mTabsAdapter.addTab)
@Override
public void onCreate(Bundle savedInstanceState)
{
// Information you want returned to your application, via onCreate(), if the activity is destroyed and restarted due to some implicit reason
super.onCreate(savedInstanceState);
mViewPager = new ViewPager(this);
mViewPager.setId(R.id.pager);
setContentView(mViewPager);
ActionBar bar = getSupportActionBar();
bar.setDisplayHomeAsUpEnabled(true);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mTabsAdapter = new TabsAdapter(this, mViewPager);
mTabsAdapter.addTab(
bar.newTab().setText("Wheel"),
ObstetricsFragment1.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("Physical"),
HistoryPhysicalFragment2.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("ROS"),
HistoryPhysicalFragment3.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("CAGE"),
HistoryPhysicalFragment4.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("SIGECAPS"),
HistoryPhysicalFragment5.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("Glasgow"),
HistoryPhysicalFragment6.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("Neuro"),
HistoryPhysicalFragment7.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("Dermat"),
HistoryPhysicalFragment8.class, null);
mTabsAdapter.addTab(
bar.newTab().setText("Minicog"),
HistoryPhysicalFragment9.class, null);
}
public static class TabsAdapter extends FragmentPagerAdapter implements
ActionBar.TabListener, ViewPager.OnPageChangeListener
{
private final Context mContext;
private final ActionBar mActionBar;
private final ViewPager mViewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
static final class TabInfo
{
private final Class<?> clss;
private final Bundle args;
TabInfo(Class<?> _class, Bundle _args)
{
clss = _class;
args = _args;
}
}
public TabsAdapter(SherlockFragmentActivity activity, ViewPager pager)
{
super(activity.getSupportFragmentManager());
mContext = activity;
mActionBar = activity.getSupportActionBar();
mViewPager = pager;
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
}
public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args)
{
TabInfo info = new TabInfo(clss, args);
tab.setTag(info);
tab.setTabListener(this);
mTabs.add(info);
mActionBar.addTab(tab);
notifyDataSetChanged();
}
@Override
public int getCount()
{
return mTabs.size();
}
@Override
public Fragment getItem(int position)
{
TabInfo info = mTabs.get(position);
return Fragment.instantiate(mContext, info.clss.getName(),
info.args);
}
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels)
{
}
public void onPageSelected(int position)
{
mActionBar.setSelectedNavigationItem(position);
}
public void onPageScrollStateChanged(int state)
{
}
public void onTabSelected(Tab tab, FragmentTransaction ft)
{
Object tag = tab.getTag();
for (int i = 0; i < mTabs.size(); i++)
{
if (mTabs.get(i) == tag)
{
mViewPager.setCurrentItem(i);
}
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft)
{
}
public void onTabReselected(Tab tab, FragmentTransaction ft)
{
}
}
// END Tabs View Pager
}
最佳答案
您将通过使调用对话框的 Activity 扩展 FragmentActivity 来解决此问题
public class ObstetricsFragment1 extends FragmentActivity{
这是支持库所固有的,如 DIALOG SPECS 所示。和 SUPPORT LIBRARY SPECS
关于android - getSupportFragmentManager() 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212353/
为什么我收到一条错误消息,显示将 getSupportFragmentManager() 更改为 getFragmentManager() googleMap = ((SupportMapFragme
我在 fragment 内使用 map fragment 。但是在 getSupportFragmentManager() 上出现错误,即无法解析 getSupportFragmentManager(
我收到错误- "Can not resolve method getSupportFragmentManager()" 在下面的代码中。 对于 getSupportFragmentManager(),
我正在尝试按照此处 map API 上的教程来制作 Android 应用程序来学习 Java。在教程中,有一个在 Main Activity 中调用的辅助类 MapInitializer。函数 ini
在主要 Activity 中我有这个 public void showTimePickerDialog(View v) { DialogFragment newFragment = new u
我正在尝试将当前 fragment 的 Intent 添加到另一个 fragment 。为此,我在卡片中的 ImageButton 上添加了一个 OnclickListener。 但它不能正常工作,我
在我的应用程序中,我有两个 Activity ,它们都有一个静态方法。我从一个单独的 Activity 中调用这些方法。问题是在我的静态方法中我无法访问 getSupportFragmentManag
我有一个扩展 SherlockActivity 的主要 Activity 下面的代码似乎给我带来了麻烦 PopularFragment fragment = new PopularFragment()
点击抽屉导航项目后,我尝试使用 TabBar 和 View Pager 显示新 fragment 。 问题是新创建的 Fragment 导致 NULL 指针异常 viewPager.setAdapte
我收到以下错误:“方法 getSupportFragmentManager() 在我的 fragment 文件中未定义类型 new View.OnClickListener(){}”下面。 我有通过
我将 ViewPager 作为 RecyclerView 中的第一项。我想将 FragmentStatePagerAdapter 设置为 viewpager在 onBindViewHolder() 方
我想在我的 Android 应用程序中显示 Google map : public class DisplayMapActivity extends ActionBarActivity { p
设备进入待机状态后,如果我调用 getSupportFragmentManager(),我会得到一个 FragmentManager,其中包含未初始化的 fragment ,其所有变量都设置为 nul
这是我的 ItemAdapter 的代码,我以这种方式将其用作列表的适配器。 list.setAdapter(new ItemAdapter(thisContext,imageUrl)); 我正在尝试
这个问题在这里已经有了答案: What is difference between getSupportFragmentManager() and getChildFragmentManager()
我正在开发一个 android 应用程序,我想保存我在矢量 fragment 中的 fragment 。当我在 onSaveIstanceState 中使用 putFragment 时,系统抛出 Il
最近我在 android studios 中启动了一个新项目,并遇到了一个错误,我无法真正找到或看到问题所在,当我的应用程序遇到 getSupportFragmentManager() 行时,它崩溃了
我在 getSupportFragmentManager() 上遇到错误“此方法在 Fragment 中未定义”,同时创建带有滑动选项卡的 slider 菜单我准备了如下代码.. public cla
我正在使用 viewpager 并编译 API 23。我在我的代码中显示以下语句的编译错误,但该项目确实可以编译。 List fragments = getSupportFragmentManager
我正在使用 Android 编程中的教程编写我的第一个使用 fragment 的应用程序:Big Nerd Ranch 指南。 我创建了一个 fragment 和一个相应的布局,现在我想向将使用它的父
我是一名优秀的程序员,十分优秀!