0

screen shotViewPager 탭 이전을 선택하고 다시 실행할 탭은 지속적으로

안녕하세요, 는이 사진에서 내 프로젝트입니다. 내 프로젝트에는 모든 페이지에 사용자 정의 listView가 있으며 listViews에는 json 데이터가 채워져 있습니다.

모든 탭의 onCreateView 이벤트 토스트 메시지에 문제가 있음을 알리고 무슨 일이 있었는지 확인했습니다.

예를 들어, 두 번째 탭을 클릭하면 "2 working"이되고 "3 worked"는 토스트 메시지가됩니다. 또한 listview에 동일한 데이터를 계속해서 추가해야합니다.

죄송합니다. 내 문제를 설명 할 수 없다면 죄송합니다.

여기 내 코드입니다.

public class TabsPagerAdapter extends FragmentPagerAdapter { 

public TabsPagerAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int index) { 

    switch (index) { 
    case 0: 
     return new VasitaTurFragment(); 
     . 
     . 
     . 
    return null; 
} 
@Override 
public int getCount() { 
    // get item count - equal to number of tabs 
    return 6; 
} 

MainActivity :

public class MainActivity extends FragmentActivity implements 
    ActionBar.TabListener { 
private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private ActionBar actionBar; 
private String[] tabs = { "1", "2", "3","4","5","6" }; 
ModelFragment mF= new ModelFragment(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 
    viewPager.setAdapter(mAdapter); 
    actionBar.setHomeButtonEnabled(false); 

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener(this)); 
    } 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageSelected(int position) { 

      actionBar.setSelectedNavigationItem(position); 
     } 
     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 
     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
} 
@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
} 
@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    viewPager.setCurrentItem(tab.getPosition()); 
} 
@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
} 
} 

조각 :

public class MenseiFragment extends Fragment { 
private static final String TAG = MainActivity.class.getSimpleName();  
private ProgressDialog pDialog; 
private List<Mensei> menseiList = new ArrayList<Mensei>(); 
private ListView listView; 
private menseiCLA adapter; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    final View rootView = inflater.inflate(R.layout.mensei, container, false); 
    listView = (ListView) rootView.findViewById(R.id.listView1); 
    adapter = new menseiCLA(getActivity(), menseiList); 
    listView.setAdapter(adapter); 
    Toast.makeText(getActivity(),"2 worked", 
      Toast.LENGTH_LONG).show(); 

    JsonArrayRequest commonReq = new JsonArrayRequest(url, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 

        for (int i = 0; i < response.length(); i++) { 
         try { 

          JSONObject objAna = response.getJSONObject(i); 
          Mensei mensei = new Mensei(); 
          . 
          . 

          menseiList.add(mensei); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
        adapter.notifyDataSetChanged(); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
     } 
    }); 
    AppController.getInstance().addToRequestQueue(commonReq); 
    return rootView; 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    hidePDialog(); 
}} 

답변

1

viewpager의 기본 동작은, 그래서 당신은 각 탭 두를 클릭하면 근심 그것의 hbor는 자동으로 생성되고 모두 onResume에서 실행됩니다. 만약 당신이 정말로 원한다면, 그들은 각 탭 단편에 대해 아래의 기능을 사용할 때만 무언가를 할 수 있습니다 :

관련 문제