我目前遇到一个奇怪的问题,试图同时使用 v4 和 v7(操作栏)兼容性库。
假设我有自己的 Activity 类,它一方面扩展了 ActionBarActivity,另一方面扩展了 Fragment,我在其中调用了“(MyActivity)getActivity()”。
我检查了导入,我的片段是 v4 片段。
在 v4 Fragment 中,调用“getActivity()”会返回一个 FragmentActivity。
我还检查了:ActionBarActivity 扩展了 FragmentActivity。
现在这是我的问题:我在编辑器中没有任何错误(没有红线)。我正在使用安卓工作室。当我尝试“制作”项目时,每次我在 Fragment 中调用“getActivity”时,编译器都会返回一个错误。它告诉我他有一个 FragmentActivity 但需要一个 ActionBarActivity 并告诉我这些类不兼容。它中断了,我什至无法测试我的应用程序。
这可能是 gradle 配置的问题,但我在 build.gradle 文件的“依赖项”部分添加了“compile”compile“com.android.support:appcompat-v7:18.0.+”,如上所说页面:“ http://developer.android.com/tools/support-library/setup.html ”,它不会改变任何东西......
任何想法?
编辑: 作为我昨天帖子的补充,即使之前已经解释了一切,这里有一些代码部分和 Android-Studio 给我的错误消息:
首先,我的活动:
...
import android.support.v7.app.ActionBarActivity;
...
public abstract class MyAbstractActivity extends ActionBarActivity{
//Do some stuff here
}
我的应用程序的每个活动都扩展了这个类。
现在这是我的片段:
...
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
...
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Do some stuff...
((MyAbstractActivity)getActivity()).getSupportActionBar().setTitle(R.string.app_name);
}
//Do some stuff...
}
编辑器中没有显示错误。但是当我“制作”项目时,我在“事件日志”中收到了这条消息:
编译完成,4 秒内出现 5 个错误和 0 个警告
在“Messages Make”部分,我每次尝试在“MyAbstractActivity”中投射“getActvity()”时都可以看到:
java:需要不可转换的类型:com.myapps.abstracts.MyAbstractActivity 找到:android.support.v4.app.FragmentActivity