0

У меня есть следующая проблема. У меня есть Activity под названием OverviewActivity с его макетом, который реализует некоторые ImageButtons. Когда я нажимаю на «Профиль» ImageButton, OverviewActivity «приведет» меня к Activity под названием «ProfileActivity_2». Там я реализовал три Scrolltabs. Код выглядит следующим образом:Как реализовать ListView в фрагменте

public class ProfileActivity_2 extends FragmentActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_profile_scrolltabs); 

    ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 

    FragmentManager fragmentManager = getSupportFragmentManager(); 

    viewPager.setAdapter(new AdapterTab(fragmentManager)); 
} 

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.chat, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.action_chat: 
     Intent mailbox = new Intent(this, MailboxListActivity.class); 
     startActivity(mailbox); 
     return true; 
    } 
    return true; 
} 

public static FragmentProfile newInstance(String username) { 
    FragmentProfile f = new FragmentProfile(); 
    // Supply index input as an argument. 
    Bundle args = new Bundle(); 
    args.putString("username", username); 
    f.setArguments(args); 
    return f; 
} 

} 

class AdapterTab extends FragmentPagerAdapter { 

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

@Override 
public Fragment getItem(int i) { 

    Fragment fragment = null; 

    if (i == 0) { 
     fragment = new FragmentProfile(); 
    } 
    if (i == 1) { 
     fragment = new FragmentBorrowed(); 
    } 
    if (i == 2) { 
     fragment = new FragmentLent(); 
    } 
    return fragment; 
} 

@Override 
public int getCount() { 
    return 3; 
} 

@Override 
public CharSequence getPageTitle(int position) { 

    String title = new String(); 

    if (position == 0) { 
     return "Profil"; 
    } 
    if (position == 1) { 
     return "geliehene Bücher"; 
    } 
    if (position == 2) { 
     return "verliehene Bücher"; 
    } 
    return null; 
} 

} 

Итак, все работает нормально. Как вы можете видеть, у меня есть три вкладки, каждая из которых содержит фрагмент, который называется FragmentProfile, FragmentBorrowed и FragmentLent. Таким образом, первый «экран» или первая вкладка сохраняет FragmentProfile. Когда я перехожу на вторую вкладку (FragmentBorrowed), там есть еще две вкладки. Код выглядит следующим образом.

public class FragmentBorrowed extends Fragment { 

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

    return inflater.inflate(R.layout.fragment_borrowed_tab2, container, 
      false); 
} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    TabHost tabhost = (TabHost) getView() 
      .findViewById(android.R.id.tabhost); 

    tabhost.setup(); 
    Resources res = getResources(); 

    TabSpec spec1 = tabhost.newTabSpec("tab1"); 
    spec1.setContent(R.id.tab1); 
    spec1.setIndicator(res.getString(R.string.tablabel1)); 
    tabhost.addTab(spec1); 

    TabSpec spec2 = tabhost.newTabSpec("tab2"); 
    spec2.setContent(R.id.tab2); 
    spec2.setIndicator(res.getString(R.string.tablabel2)); 
    tabhost.addTab(spec2); 

} 
} 

Теперь я приду к своему актуальному вопросу. На обоих этих вкладках в FragmentBorrowed я хочу реализовать ListView для каждого. Поэтому, когда я нажимаю на первую вкладку, будет ListView, и когда я нажму на вторую вкладку, я получу другой ListView. Я пробовал так много вещей, смотрел так много учебников и читал на форуме stackoverflow, как реализовать ListView во Фрагменте, но я не смог найти решение для своей проблемы. Я попытался вызвать новое действие в FragmentBorrowed, но это не сработало так, как я ожидал, потому что Activity уже начнется, когда я нажму ImageButton «Профиль», о котором я упомянул ранее, и я хочу начать новую активность только тогда, когда переключусь на вторую вкладка (FragmentBorrowed).

Может кто-нибудь мне помочь?

PS .: Я хотел бы показать вам некоторые изображения приложения, но StackOverflow не позволяют это;)

ответ

0

Ваш ProfileActivity_2 должен продлить ListFragment. Найдите его или ответьте мне, если вам нужен пример кода для этого.

+0

Во-первых, спасибо за ваш ответ. Когда я изменяю ProfileActivity_2 на ListFragment, как я могу перейти из OverviewActivity в ProfileActivity_2. Во-вторых, не могли бы вы дать мне пример кода, ссылающегося на список, который вы предложили? Может быть, даже с моим кодом от ProfileActivity_2 и FragmentBorrowed? Это было бы очень приятно! :) –

+0

То, что я понял из урского вопроса, состоит в том, что у вас есть активность Обзор активности, состоящий из трех кнопок изображения. В событии клика кнопки изображения профиля вы перешли к ProfileActivity_2, где вы использовали три вкладки, каждая из которых содержит один фрагмент. Теперь в вашем Fragment Borrowed у вас есть вложенные вкладки, т. Е. Две вкладки на одной вкладке. Теперь я прямо вверх. –

+0

Теперь вы хотите, чтобы вложенные вкладки ur открывали два отдельных фрагмента, содержащих списки. –

Смежные вопросы