Iterating in a fragment

放肆的年华 提交于 2020-01-07 15:38:31

问题


How would I be able to iterate in a fragment? For example I have been doing like this without iterating since I could not figure out the syntax to only change the last part of the ids:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {


    View rootView = inflater.inflate(R.layout.fragment1,container, false);

    iv_main_gongcast0 = (ImageView) rootView.findViewById(R.id.iv_main_gongcast0);
    iv_main_gongcast1 = (ImageView) rootView.findViewById(R.id.iv_main_gongcast1);
    iv_main_gongcast2 = (ImageView) rootView.findViewById(R.id.iv_main_gongcast2);
    iv_main_gongcast3 = (ImageView) rootView.findViewById(R.id.iv_main_gongcast3);
...
    tabHost1 = (FragmentTabHost)rootView.findViewById(R.id.tabhost1);
    tabHost1.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent1);
    tabHost1.addTab(tabHost1.newTabSpec("frag6").setIndicator(null, getResources().getDrawable(R.drawable.main1selector)), Fragment6.class, null);
    tabHost1.addTab(tabHost1.newTabSpec("frag7").setIndicator(null, getResources().getDrawable(R.drawable.main2selector)), Fragment7.class, null);
    tabHost1.addTab(tabHost1.newTabSpec("frag8").setIndicator(null, getResources().getDrawable(R.drawable.main3selector)), Fragment8.class, null);
    tabHost1.addTab(tabHost1.newTabSpec("frag9").setIndicator(null,getResources().getDrawable(R.drawable.main4selector)), Fragment9.class, null);

    tabHost2 = (FragmentTabHost)rootView.findViewById(R.id.tabhost2);
    tabHost2.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent2);
    tabHost2.addTab(tabHost2.newTabSpec("frag10").setIndicator(null, getResources().getDrawable(R.drawable.main1selector)), Fragment10.class, null);
    tabHost2.addTab(tabHost2.newTabSpec("frag11").setIndicator(null, getResources().getDrawable(R.drawable.main2selector)), Fragment11.class, null);
    tabHost2.addTab(tabHost2.newTabSpec("frag12").setIndicator(null, getResources().getDrawable(R.drawable.main3selector)), Fragment12.class, null);
    tabHost2.addTab(tabHost2.newTabSpec("frag13").setIndicator(null, getResources().getDrawable(R.drawable.main4selector)), Fragment13.class, null);

    tabHost3 = (FragmentTabHost)rootView.findViewById(R.id.tabhost3);
    tabHost3.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent3);
    tabHost3.addTab(tabHost3.newTabSpec("frag14").setIndicator(null, getResources().getDrawable(R.drawable.main1selector)), Fragment14.class, null);
    tabHost3.addTab(tabHost3.newTabSpec("frag15").setIndicator(null, getResources().getDrawable(R.drawable.main2selector)), Fragment15.class, null);
    tabHost3.addTab(tabHost3.newTabSpec("frag16").setIndicator(null, getResources().getDrawable(R.drawable.main3selector)), Fragment16.class, null);
    tabHost3.addTab(tabHost3.newTabSpec("frag17").setIndicator(null, getResources().getDrawable(R.drawable.main4selector)), Fragment17.class, null);

    tabHost1.getTabWidget().setDividerDrawable(null);
    tabHost2.getTabWidget().setDividerDrawable(null);
    tabHost3.getTabWidget().setDividerDrawable(null);

    for( int i = 0; i < tabHost1.getTabWidget().getChildCount();i++) {
        tabHost1.getTabWidget().getChildAt(i).setBackgroundColor(000000);
        tabHost2.getTabWidget().getChildAt(i).setBackgroundColor(000000);
        tabHost3.getTabWidget().getChildAt(i).setBackgroundColor(000000);
        tabHost1.getTabWidget().getChildTabViewAt(i).setPadding(0,0,0,0);
        tabHost2.getTabWidget().getChildTabViewAt(i).setPadding(0,0,0,0);
        tabHost3.getTabWidget().getChildTabViewAt(i).setPadding(0,0,0,0);
    }
return rootView;
}



private void Main_Gongcast(Main NewUser){
    Picasso.with(getActivity().getApplicationContext())
            .load(NewUser.getResponsedata().getResultObject().getMainBoardRecentArr().get(0).getContentFirstImgPath())
            .into(iv_main_gongcast0);
    Picasso.with(getActivity().getApplicationContext())
            .load(NewUser.getResponsedata().getResultObject().getMainBoardRecentArr().get(1).getContentFirstImgPath())
            .into(iv_main_gongcast1);
    Picasso.with(getActivity().getApplicationContext())
            .load(NewUser.getResponsedata().getResultObject().getMainBoardRecentArr().get(2).getContentFirstImgPath())
            .into(iv_main_gongcast2);
    Picasso.with(getActivity().getApplicationContext())
            .load(NewUser.getResponsedata().getResultObject().getMainBoardRecentArr().get(3).getContentFirstImgPath())
            .into(iv_main_gongcast3);
...
}

So basically, for the last part, I thought doing sth like:

private void Main_Gongcast(Main NewUser) {
    for (int i = 0; i < 8; i++) {
        Picasso.with(getActivity().getApplicationContext())
.load(NewUser.getResponsedata().getResultObject()
.getMainBoardRecentArr().get(i).getContentFirstImgPath()
.into(getResources()
.getIdentifier("iv_main_gongcast" + i, "id", getContext().getPackageName()));
    }
}

would work but it doesn't.


回答1:


I did this way:

ImageView[] iv_main_gongcast = new ImageView[8];

//

for(int i=0; i< 8; i++) {
        iv_main_gongcast[i] = ((ImageView) rootView.findViewById(getResources().getIdentifier("iv_main_gongcast" + i, "id", getActivity().getPackageName())));
    }

//

private void Main_Gongcast(Main NewUser){
    for (int i = 0; i < 8; i++) {
        if(NewUser.getResponsedata().getResultObject().getMainBoardRecentArr().get(i).getContentFirstImgPath() != "") {
            Picasso.with(getActivity().getApplicationContext())
                    .load("yoururl")
                    .into(iv_main_gongcast[i]);
        }
    }
}


来源:https://stackoverflow.com/questions/36215432/iterating-in-a-fragment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!