gpt4 book ai didi

java - 如何将 AppCompatActivity 更改为 Fragment

转载 作者:行者123 更新时间:2023-12-01 21:28:13 24 4
gpt4 key购买 nike

我是开发 Android 应用程序的新手。我的选项卡使用 fragment ,但我遵循使用 AppCompatActivity 的教程无法将它们组合起来。我想学习如何将AppCompatActivity更改为Fragment。

这是我的一些代码:

UserInfo.java这部分应该使用 fragment 。

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()

关于java - 如何将 AppCompatActivity 更改为 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37776201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com