无法解决方法 Android Studio
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/26101629/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Cannot Resolve method Android Studio
提问by ImAtWar
I am getting an error on this code using android studio
我在使用 android studio 时遇到此代码错误
Cannot resolve method 'add(int, android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment)'
无法解析方法 'add(int, android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment)'
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_second, container, false);
return rootView;
}
}
In seperate posts i found out that when you delete the if part, things should roll fine, except that it throws another error.
在单独的帖子中,我发现当您删除 if 部分时,事情应该会顺利进行,只是它会引发另一个错误。
Thanks for the help!
谢谢您的帮助!
Edit:Imports:
编辑:进口:
import android.app.Activity; import android.support.v4.app.Fragment;
import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions;
导入 android.app.Activity; 导入 android.support.v4.app.Fragment;
导入 android.os.Bundle; 导入 android.view.LayoutInflater; 导入 android.view.Menu; 导入 android.view.MenuItem; 导入 android.view.View; 导入 android.view.ViewGroup; 导入 android.widget.Toast;
导入 com.google.android.gms.maps.CameraUpdateFactory; 导入 com.google.android.gms.maps.GoogleMap; 导入 com.google.android.gms.maps.MapFragment; 导入 com.google.android.gms.maps.model.BitmapDescriptorFactory; 导入 com.google.android.gms.maps.model.CameraPosition; 导入 com.google.android.gms.maps.model.LatLng; 导入 com.google.android.gms.maps.model.MarkerOptions;
回答by AndroidEnthusiast
PlaceholderFragment might be a support fragment.
PlaceholderFragment 可能是一个支持片段。
Change getFragmentManager to getSupportFragmentManager() as below:
将 getFragmentManager 更改为 getSupportFragmentManager() 如下:
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
Your activity must also extend FragmentActivity.
您的活动还必须扩展 FragmentActivity。
Note:
笔记:
If you don't intend on using support fragments then you can just change the import for the fragments.
如果您不打算使用支持片段,那么您可以更改片段的导入。
Change import android.support.v4.app.Fragment; to import android.app.Fragment;
更改 import android.support.v4.app.Fragment; 导入 android.app.Fragment;
回答by QArea
Try this:
尝试这个:
change getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
to
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new PlaceholderFragment()).commit();
回答by RorschachSzr
Change import android.app.Fragment;
to android.support.v4.app.Fragment;
更改import android.app.Fragment;
为android.support.v4.app.Fragment;
like
喜欢
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
}
回答by u5211732
in your fragment file
using import android.support.v4.app.Fragment;
在您的片段文件中使用 import android.support.v4.app.Fragment;
rather than import android.app.Fragment;
而不是 import android.app.Fragment;
than can fix it;
可以修复它;
Here is example:
这是示例:
In your activity file:
在您的活动文件中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_travel_message);
TravelMessageFragment fragment = new TravelMessageFragment();
getSupportFragmentManager().beginTransaction().add(R.id.travelInit,fragment).commit();
}
than in your fragment file:
比在您的片段文件中:
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class TravelMessageFragment extends Fragment{
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_travel_message, group, false);
return view;
}
}
回答by Shivam Srivastava
Cannot resolve method 'add(int, android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment)'
无法解析方法 'add(int, android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment)'
Change two things
改变两件事
First Thing :
第一件事:
you can create object of class "android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment" instead of putting class name
您可以创建类“android.trey.startingpoint.nl.SecondActivity.PlaceHolderFragment”的对象而不是放置类名
like
喜欢
if(findViewById(R.id.fragment_container) != null) {
if(savedInstanceState != null) {
return;
}
PlaceHolderFragment mFragment = new PlaceHolderFragment();
mFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,th
irdFragment).commit();
}
Second Thing:
第二件事:
Go to class file PlaceHolderFragment and change import " android.support.v4.app.Fragment" from "android.support.app.Fragment"
转到类文件 PlaceHolderFragment 并从“android.support.app.Fragment”更改导入“android.support.v4.app.Fragment”
回答by Ashutosh Rathor
Change import android.support.v4.app.Fragment;
to import android.app.Fragment;
更改import android.support.v4.app.Fragment;
为import android.app.Fragment;
and also getSupportFragmentManager()
to
并且还getSupportFragmentManager()
以
getFragmentManager
{
if (savedInstanceState == null)
{
getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
it works for me
这个对我有用