我是开发Android应用程序的新手。我的选项卡使用片段但我遵循使用AppCompatActivity的教程无法将它们组合在一起。我想学习如何将AppCompatActivity更改为Fragment。
有一些代码:
UserInfo.java 此部分应使用片段。
public class UserInfo extends AppCompatActivity{
@Bind(R.id.passport_type)
BetterSpinner spinner_passport;
public UserInfo() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_info);
ButterKnife.bind(this);
String[] list = getResources().getStringArray(R.array.passport_type);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, list);
spinner_passport.setAdapter(adapter);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.user_info, container, false);
}
}
这是代码发生错误:
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new UserInfo(), "个人信息");
adapter.addFragment(new TwoFragment(), "健康信息");
adapter.addFragment(new ThreeFragment(), "个人证件");
viewPager.setAdapter(adapter);
}
新的UserInfo()有错误。 错误消息是:
Wrong 1st argument type. Found: 'com.chinatown.wangjian.chinatown_userprofile.UserInfo', required: 'android.support.v4.app.Fragment' less...
addFragment
(android.support.v4.app.Fragment,
String)
in ViewPagerAdapter cannot be applied
to
(com.chinatown.wangjian.chinatown_userprofile.UserInfo,
String)
我真的想学习如何更改Fragment任何教程或任何帮助将不胜感激。非常感谢!如果需要,我会上传更多详细信息。
答案 0 :(得分:3)
你需要弄清楚Butterknife是如何在碎片中运作的,但我认为你已经关闭了,你需要这样做
/Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/net/http.rb:879:in `initialize': unable to connect to `s3.ireland.amazonaws.com`; SocketError: getaddrinfo: nodename nor servname provided, or not known (Seahorse::Client::NetworkingError)
(并确保导入class UserInfo extends Fragment
)
然后,最好将所有代码从onCreate移动到OnCreateView并重新构建代码
android.support.v4.app.Fragment
如果您在View v = inflater.inflate(R.layout.user_info, container, false);
// TODO: v.findViewById(R.id.passport_type)
// TODO: Set the adapter
return v; // this replaces 'setContentView'
收到错误,请将其更改为this
,并getActivity()