如何将AppCompatActivity更改为片段

时间:2016-06-12 15:51:52

标签: java android android-fragments 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);
    }

新的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任何教程或任何帮助将不胜感激。非常感谢!如果需要,我会上传更多详细信息。

1 个答案:

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

相关问题