如何摆脱这个 "Inconvertible" 错误?
How to get rid of this "Inconvertible" error?
我正在制作一个简单的 memegenerator 应用程序,用户应该在底部和顶部字段中输入文本,该文本将添加到图片的底部和顶部。因为我想让应用程序保持简单,所以我只为 Meme 使用了一个固定图像。
我用了两个片段。一个用于 Edittext 区域,另一个用于 viwtext 区域(etxt 将附加在图片上)。为了将它们粘合在一起,我创建了接口,该接口也在我的 mainActivity 的 java 文件中被调用。现在问题出在我的主 java class 中的以下代码行中。这里的方法 memeGen
是这个应用程序的主要大脑。在其中,我试图通过它的 ID 找到其中一个片段。但它似乎没有找到资源。
public void memeGen(String top, String bottom) {
BottomSectionJava bjs=(BottomSectionJava)getSupportFragmentManager().findFragmentById(R.id.fragment2);
}
其他一切正常。只有上面一行显示此错误:
我的日志文件输出如下:
C:\Users\Riyana\AndroidStudioProjects\Fragment\app\src\main\java\com\mycompany\fragment\FragmentActivity.java
Error:(20, 94) error: inconvertible types
required: BottomSectionJava
found: Fragment
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
这是 class 出现错误的完整代码:
public class FragmentActivity extends ActionBarActivity implements TopSectionjava.TopSectionListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
}
@Override
public void memeGen(String top, String bottom) {
BottomSectionJava bjs=(BottomSectionJava)getSupportFragmentManager().findFragmentById(R.id.fragment2);
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_, menu);
return true;
}
}
BottomSectionJava:
public class BottomSectionJava extends Fragment{
private static TextView memetext_top;
private static TextView memetext_bottom;
//
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.bottom_section,container,false);
memetext_top=(TextView)view.findViewById(R.id.memetext_top);
memetext_bottom=(TextView)view.findViewById(R.id.memetext_bottom);
return view;
}
public void setTextOnThePic(String top,String bottom){
memetext_top.setText(top);
memetext_bottom.setText(bottom);
}
}
将 BottomSectionJava
中的扩展名从 android.app.Fragment
更改为 android.support.v4.app.Fragment
我认为您在下面的导入行中有:
import android.app.Fragment;
而且你必须
import android.support.v4.app.Fragment;
现在您的片段从 android.app
包扩展对象 Fragment
,您必须从 android.support.v4.app
包扩展 Fragment
。
我正在制作一个简单的 memegenerator 应用程序,用户应该在底部和顶部字段中输入文本,该文本将添加到图片的底部和顶部。因为我想让应用程序保持简单,所以我只为 Meme 使用了一个固定图像。
我用了两个片段。一个用于 Edittext 区域,另一个用于 viwtext 区域(etxt 将附加在图片上)。为了将它们粘合在一起,我创建了接口,该接口也在我的 mainActivity 的 java 文件中被调用。现在问题出在我的主 java class 中的以下代码行中。这里的方法 memeGen
是这个应用程序的主要大脑。在其中,我试图通过它的 ID 找到其中一个片段。但它似乎没有找到资源。
public void memeGen(String top, String bottom) {
BottomSectionJava bjs=(BottomSectionJava)getSupportFragmentManager().findFragmentById(R.id.fragment2);
}
其他一切正常。只有上面一行显示此错误:
我的日志文件输出如下:
C:\Users\Riyana\AndroidStudioProjects\Fragment\app\src\main\java\com\mycompany\fragment\FragmentActivity.java
Error:(20, 94) error: inconvertible types
required: BottomSectionJava
found: Fragment
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
这是 class 出现错误的完整代码:
public class FragmentActivity extends ActionBarActivity implements TopSectionjava.TopSectionListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
}
@Override
public void memeGen(String top, String bottom) {
BottomSectionJava bjs=(BottomSectionJava)getSupportFragmentManager().findFragmentById(R.id.fragment2);
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_, menu);
return true;
}
}
BottomSectionJava:
public class BottomSectionJava extends Fragment{
private static TextView memetext_top;
private static TextView memetext_bottom;
//
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.bottom_section,container,false);
memetext_top=(TextView)view.findViewById(R.id.memetext_top);
memetext_bottom=(TextView)view.findViewById(R.id.memetext_bottom);
return view;
}
public void setTextOnThePic(String top,String bottom){
memetext_top.setText(top);
memetext_bottom.setText(bottom);
}
}
将 BottomSectionJava
中的扩展名从 android.app.Fragment
更改为 android.support.v4.app.Fragment
我认为您在下面的导入行中有:
import android.app.Fragment;
而且你必须
import android.support.v4.app.Fragment;
现在您的片段从 android.app
包扩展对象 Fragment
,您必须从 android.support.v4.app
包扩展 Fragment
。