如何将 AppCompatActivity 更改为 Fragment
How to Change AppCompatActivity to Fragment
我是开发 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);
}
new 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 任何教程或任何帮助将不胜感激。非常感谢!如果需要,我会上传更多详细信息。
您需要了解 Butterknife 在 Fragments 中的工作原理,但我认为您已经很接近了,您需要这个
class UserInfo extends Fragment
(并确保导入 android.support.v4.app.Fragment
)
然后,最好将所有代码从 onCreate 移动到 OnCreateView 并像这样重组代码
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()
,以及 getActivity().getResources()
我是开发 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);
}
new 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 任何教程或任何帮助将不胜感激。非常感谢!如果需要,我会上传更多详细信息。
您需要了解 Butterknife 在 Fragments 中的工作原理,但我认为您已经很接近了,您需要这个
class UserInfo extends Fragment
(并确保导入 android.support.v4.app.Fragment
)
然后,最好将所有代码从 onCreate 移动到 OnCreateView 并像这样重组代码
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()
,以及 getActivity().getResources()