Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android片段类型不匹配_Java_Android_Eclipse_Android Fragments_Types - Fatal编程技术网

Java Android片段类型不匹配

Java Android片段类型不匹配,java,android,eclipse,android-fragments,types,Java,Android,Eclipse,Android Fragments,Types,我是android新手,正在达特茅斯学习教程 我遵循所有代码,在MainActivity.java上 // create the fragments Fragment mFindFragment = new FindFragment(); Fragment mChatFragment = new ChatFragment(); // bind the fragments to the tabs - set up tabListeners for each tab mFindTab.setTa

我是android新手,正在达特茅斯学习教程

我遵循所有代码,在MainActivity.java上

// create the fragments
Fragment mFindFragment = new FindFragment();
Fragment mChatFragment = new ChatFragment();

// bind the fragments to the tabs - set up tabListeners for each tab 
mFindTab.setTabListener(new MyTabsListener(mFindFragment,
                           getApplicationContext()));
mChatTab.setTabListener(new MyTabsListener(mChatFragment,
                           getApplicationContext()));
我遇到了以下错误:类型不匹配:无法从FindFragment转换为Fragment。因此,我遵循修复错误的建议,将代码更改为

// create the fragments
FindFragment mFindFragment = new FindFragment();

// bind the fragments to the tabs - set up tabListeners for each tab 
mFindTab.setTabListener(new MyTabsListener(mFindFragment,
                           getApplicationContext()));
现在,出现了一个新错误:构造函数MyTabsListener(FindFragment,Context)未定义

为了防止进口至关重要,以下是:

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
对于myTabsListener:

  class MyTabsListener implements ActionBar.TabListener {
    public Fragment fragment;
    public Context context;

    public MyTabsListener(Fragment fragment, Context context) {
        this.fragment = fragment;
        this.context = context;

    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        Toast.makeText(context, "Reselected!", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        Toast.makeText(context, "Selected!", Toast.LENGTH_SHORT).show();
        ft.replace(R.id.container, fragment);
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        Toast.makeText(context, "Unselected!", Toast.LENGTH_SHORT).show();
        ft.remove(fragment);
    }

}
对于我的FindFragment类:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FindFragment extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.findfragment, container, false);
    }


}

我在这里很困惑。我不确定这是否与我的导入、库设置或其他问题有关。提前谢谢

您需要更改此设置

import android.support.v4.app.Fragment;
// you will use this import when you want fragment from support library 
// in that case you will extend FragmentActivity which is the base class for support based fragments

FindFragment.java


同样地,在
ChatFragment.java中也要这样做
您需要更改它

import android.support.v4.app.Fragment;
// you will use this import when you want fragment from support library 
// in that case you will extend FragmentActivity which is the base class for support based fragments

FindFragment.java


同样地,在
ChatFragment.java中也要这样做
您需要更改它

import android.support.v4.app.Fragment;
// you will use this import when you want fragment from support library 
// in that case you will extend FragmentActivity which is the base class for support based fragments

FindFragment.java


同样地,在
ChatFragment.java中也要这样做
您需要更改它

import android.support.v4.app.Fragment;
// you will use this import when you want fragment from support library 
// in that case you will extend FragmentActivity which is the base class for support based fragments

FindFragment.java



同样,在
ChatFragment.java
中也执行同样的操作

显示
MyTabsListener
类的代码。确保您的类
MyTabsListener
包含具有您定义的两个参数的构造函数。您的活动扩展了什么并发布了碎片导入请显示
MyTabsListener
FindFragment
类。您应该为
FindFragment
extensed Fragment
,或者将MyTabsListener的构造函数更改为
MyTabsListener(FindFragment ff,Context c)
您在哪个类中编写了代码
mChatTab.setTabListener(新的MyTabsListener(mChatFragment,getApplicationContext())?是碎片的活性吗?请显示它。发布选项卡列表显示您的
MyTabsListener
类的代码。确保您的类
MyTabsListener
包含具有您定义的两个参数的构造函数。您的活动扩展了什么并发布了碎片导入请显示
MyTabsListener
FindFragment
类。您应该为
FindFragment
extensed Fragment
,或者将MyTabsListener的构造函数更改为
MyTabsListener(FindFragment ff,Context c)
您在哪个类中编写了代码
mChatTab.setTabListener(新的MyTabsListener(mChatFragment,getApplicationContext())?是碎片的活性吗?请显示它。发布选项卡列表显示您的
MyTabsListener
类的代码。确保您的类
MyTabsListener
包含具有您定义的两个参数的构造函数。您的活动扩展了什么并发布了碎片导入请显示
MyTabsListener
FindFragment
类。您应该为
FindFragment
extensed Fragment
,或者将MyTabsListener的构造函数更改为
MyTabsListener(FindFragment ff,Context c)
您在哪个类中编写了代码
mChatTab.setTabListener(新的MyTabsListener(mChatFragment,getApplicationContext())?是碎片的活性吗?请显示它。发布选项卡列表显示您的
MyTabsListener
类的代码。确保您的类
MyTabsListener
包含具有您定义的两个参数的构造函数。您的活动扩展了什么并发布了碎片导入请显示
MyTabsListener
FindFragment
类。您应该为
FindFragment
extensed Fragment
,或者将MyTabsListener的构造函数更改为
MyTabsListener(FindFragment ff,Context c)
您在哪个类中编写了代码
mChatTab.setTabListener(新的MyTabsListener(mChatFragment,getApplicationContext())?是碎片的活性吗?请显示它。张贴标签侦听器谢谢它正在工作!我只是想知道我是否使用import android.support.v4.app.Fragment;然后我需要使用FragmentActivity;如果我使用import android.app.Fragment,那么我需要使用Fragment。我可以使用任何一对,对吗?@JeffLam您需要使用11以下基于支持的片段。注意:片段是在api级别11中引入的。如果需要,为了向后兼容,您将使用来自支持库的片段,谢谢它现在正在工作!我只是想知道我是否使用import android.support.v4.app.Fragment;然后我需要使用FragmentActivity;如果我使用import android.app.Fragment,那么我需要使用Fragment。我可以使用任何一对,对吗?@JeffLam您需要使用11以下基于支持的片段。注意:片段是在api级别11中引入的。如果需要,为了向后兼容,您将使用来自支持库的片段,谢谢它现在正在工作!我只是想知道我是否使用import android.support.v4.app.Fragment;然后我需要使用FragmentActivity;如果我使用import android.app.Fragment,那么我需要使用Fragment。我可以使用任何一对,对吗?@JeffLam您需要使用11以下基于支持的片段。注意:片段是在api级别11中引入的。如果需要,为了向后兼容,您将使用来自支持库的片段,谢谢它现在正在工作!我只是想知道我是否使用import android.support.v4.app.Fragment;然后我需要使用FragmentActivity;如果我使用import android.app.Fragment,那么我需要使用Fragment。我可以使用任何一对,对吗?@JeffLam您需要使用11以下基于支持的片段。注意:片段是在api级别11中引入的。如果需要,为了向后兼容,您将使用支持库中的片段