0

다음과 같은 문제가 있습니다. 뷰 페이지와 두 개의 탭이있는 앱이 있습니다. 두 개의 탭은 두 개의 목록 조각입니다. 이제 사용자가 첫 번째 탭에서 항목을 선택하면 두 번째 탭에서 다섯 번째 항목이 선택됩니다. (두 번째 탭은 첫 번째 항목의 텍스트 번역입니다). 내 문제는 첫 번째 탭에서 항목을 선택하고 두 번째 탭으로 전환 할 때 아무 것도 선택되지 않는다는 것입니다. 첫 번째 탭에서 무언가를 클릭하면 5 번째 항목을 선택해야하는 두 번째 조각에서 함수를 호출하는 상위 작업에서 함수를 호출합니다. 이는 조각 활동의 코드입니다 :탭의 목록 조각에있는 listviewselection

public class Dailyquran extends FragmentActivity implements ActionBar.TabListener { 


    SectionsPagerAdapter mSectionsPagerAdapter; 
    ViewPager mViewPager; 


    public ArrayList<Tweet> tweets = new ArrayList<Tweet>(); 
    public ArrayList<Tweet> tweets2 = new ArrayList<Tweet>(); 
    //private static ArrayList<String> roomList; 

    public String a; 
    public static int laenge_inhalt; 

    public static int selected; 

    public static String sure_media; 
    public static String vers_media; 
    String koran_filename; 
    //int tabwahl=0; 

    int playstatus=0; 
    MediaPlayer mp = new MediaPlayer(); 
    MenuItem playMenu; 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.activity_dailyquran, menu); 
     playMenu = menu.findItem(R.id.menu_play); 
     return true; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setTitle("Daily Quran"); 
     setContentView(R.layout.activity_dailyquran);   
     mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
     // Set up the action bar. 
     final ActionBar actionBar = getActionBar(); 
     // set the app icon as an action to go home 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     //enable tabs in actionbar 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    // Set up the ViewPager with the sections adapter. 
     mViewPager = (ViewPager) findViewById(R.id.pager); 

     mViewPager.setAdapter(mSectionsPagerAdapter); 

    // When swiping between different sections, select the corresponding tab. 
     // We can also use ActionBar.Tab#select() to do this if we have a reference to the 
     // Tab. 
     mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       actionBar.setSelectedNavigationItem(position); 
      } 
     }); 

     for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { 
      // Create a tab with text corresponding to the page title defined by the adapter. 
      // Also specify this Activity object, which implements the TabListener interface, as the 
      // listener for when this tab is selected. 
      actionBar.addTab(
        actionBar.newTab() 
          .setText(mSectionsPagerAdapter.getPageTitle(i)) 
          .setTabListener(this)); 
     } 




      main(); 

    } 

    /* WEITER UNTEN SIND DIE TABSELECTED FUNKTIONEN !!!! 
    //@Override 
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
    } 

    // @Override 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
     // When the given tab is selected, switch to the corresponding page in the ViewPager. 
     mViewPager.setCurrentItem(tab.getPosition()); 
    } 

    // @Override 
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
    }  
    */ 

    public class SectionsPagerAdapter extends FragmentPagerAdapter { 

     private FragmentTransaction mCurTransaction = null; 

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


     @Override 
     public int getItemPosition(Object object) { 
      return POSITION_NONE; //To make notifyDataSetChanged() do something 
     } 

     @Override  
     public Fragment getItem(int i) { 
      // Fragment building_fragment = new BuildingFragment(); 
      Fragment room_fragment = new RoomFragment(); 
      Fragment transl_fragment = new TransliterationFragment(); 

      // Fragment device_fragment = new DeviceFragment(); 
      Bundle args = new Bundle(); 

      switch(i){ 
      case 0: 

       room_fragment.setArguments(args); 

       return room_fragment; 
      case 1:   

       return transl_fragment; 
      case 2: 
      // args.putInt(RoomFragment.ARG_SECTION_NUMBER, i); 
      // room_fragment.setArguments(args); 
       return room_fragment; 
      default: return null; 
      } 
     } 
     @Override 
     public int getCount() { 
      return 2; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      switch (position) { 
       case 0: return "a"; 
       case 1: return "b"; 
       case 2: return "c"; 
      } 
      return null; 
     } 

     @Override 
     public Object instantiateItem(View container, int position) { 
      if (mCurTransaction == null) { 
       mCurTransaction = getSupportFragmentManager().beginTransaction(); 
      } 
      // TODO Auto-generated method stub 
      Fragment fragment = getItem(position); 

      if (fragment!=null){ 
       System.out.println("Fragment Found!"); 
       mCurTransaction.attach(fragment); 
       } 


      return fragment;//super.instantiateItem(container, position); 
     } 


    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
      case R.id.menu_play: 
       play(); 
       return true; 



      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     MenuItem switchButton = menu.findItem(R.id.menu_play);  



    } 


    public class Tweet { 

     String content; 
     String sure; 
     String vers; 

} 

    public class Tweet2 { 

     String content; 
     String sure; 
     String vers; 

} 

public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 

    public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

     mViewPager.setCurrentItem(tab.getPosition()); 

    } 

    public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 



//HERE IS THE CODE FOR SELECTING THE SECOND ITEM 

public void one_changed() 
    { 
     TransliterationFragment fragment_meaning = (TransliterationFragment) getSupportFragmentManager().findFragmentById(R.id.myfragment2);     
     Toast.makeText(getApplicationContext(),"Change Selection", Toast.LENGTH_SHORT).show(); 


     fragment_meaning.change_selected(); // do what updates are required 

    } 

이, 나는 문자열 "안녕"는 콘솔에 볼 수있는 두 번째 단편의 관련 코드, 그래서 기능이 정말이라고,하지만 난 항목이 선택되지 않았습니다.

public void change_selected() 
    { 

     System.out.println("Hallo"); 
     ListView list=getListView(); 
     list.setSelection(4); 
    } 

답변

0

그것의 내가 부모 활동에 on_changed 기능에이 코드를 추가 할 때 지금 작업 :

TransliterationFragment fragment_meaning = (TransliterationFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:"+R.id.pager+":1");  
fragment_meaning.change_selected(); // do what updates are required 
관련 문제