رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در استفاده از یک Fragment خاص برای هر Page از برنامه
#1
با سلام و خسته نباشید
استاد توی یه پروژه من از View pager و Fragment برای برنامم استفاده کردم،حالا میخوام که با لمس کردن هر کدوم از Tab ها به یک فرگمنت خاصی که تعریف میکنیم وارد بشه.چطور باید اینکار رو انجام بدم؟(در حال حاضر تو این پروژه فقط از یک Fragment استفاده شده که با انتخاب هر Tab فقط میاد و Textviewیی رو که توی لایه xml مربوط به Fragment تعریف کردیم رو Settext میکنه.اما من میخوام با سوییچ بین تب ها،از اون فرگمنت خاصی که تعریف میکنیم استفاده بشه.مثلا با کلیک روی تب اول،یک لیست ویو،تب دوم صفحه ی تنظیمات و ... نشون داده بشه)ممنون میشم کمکم کنین.اجرتون با خدا.
اینم کد  های برنامه :
main.java:

import android.app.Fragment;
import android.app.FragmentManager;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;

import com.aurelhubert.ahbottomnavigation.AHBottomNavigation;
import com.aurelhubert.ahbottomnavigation.AHBottomNavigationItem;
import com.aurelhubert.ahbottomnavigation.AHBottomNavigationViewPager;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

   private AHBottomNavigation ahBottomNavigation;
   private ArrayList<AHBottomNavigationItem> ahBottomNavigationItemArrayList = new ArrayList<>();
   private AHBottomNavigationViewPager viewPager;
   private ViewpageAdapter adapter;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       ahBottomNavigation = (AHBottomNavigation) findViewById(R.id.Ahbottom);
       ahBottomNavigation.setColored(false);
       ahBottomNavigation.setBackgroundColor(Color.BLUE);
       viewPager = (AHBottomNavigationViewPager) findViewById(R.id.ViewPager);

       AHBottomNavigationItem item1 = new AHBottomNavigationItem("اشعار", ContextCompat.getDrawable(this, R.drawable.ic_format_list_bulleted_black_24dp), Color.parseColor("#f2ff50"));
       AHBottomNavigationItem item2 = new AHBottomNavigationItem("جستجو", ContextCompat.getDrawable(this, R.drawable.ic_search_black_24dp), Color.parseColor("#f2ff50"));
       AHBottomNavigationItem item3 = new AHBottomNavigationItem("تنظیمات", ContextCompat.getDrawable(this, R.drawable.ic_settings_black_24dp), Color.parseColor("#f2ff50"));
       ahBottomNavigationItemArrayList.add(item1);
       ahBottomNavigationItemArrayList.add(item2);
       ahBottomNavigationItemArrayList.add(item3);

       ahBottomNavigation.addItems(ahBottomNavigationItemArrayList);

       ahBottomNavigation.setAccentColor(Color.parseColor("#53D9FF"));
       ahBottomNavigation.setInactiveColor(Color.parseColor("#000000"));

       ahBottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
           @Override
           public void onTabSelected(int position, boolean wasSelected) {

               viewPager.setCurrentItem(position);
           }
       });

       viewPager.setOffscreenPageLimit(4);
       adapter = new ViewpageAdapter(getSupportFragmentManager());
       viewPager.setAdapter(adapter);
   }
}


اینم از این
public class Fragment_instance extends Fragment {
    private Database db;
   private Context context;
   public ListView lst;

   private static String frag_key = "fragment title";

   public static Fragment_instance newInstance(String title) {
       Fragment_instance fragmentInstance = new Fragment_instance();
       Bundle args = new Bundle();
       args.putString(frag_key, title);
       fragmentInstance.setArguments(args);
       return fragmentInstance;
   }

   @Nullable
   @Override
   public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       View view = inflater.inflate(R.layout.fragment, container, false);
       ((TextView) view.findViewById(R.id.txt)).setText(getArguments().getString(frag_key));
       return view;
   }
}

و اینم آخریش

public class ViewpageAdapter extends FragmentPagerAdapter {

   private ArrayList<Fragment_instance> fragments = new ArrayList<>();

   public ViewpageAdapter(FragmentManager fm) {
       super(fm);
       fragments.clear();
       fragments.add(Fragment_instance.newInstance("خانه"));
       fragments.add(Fragment_instance.newInstance("نقشه"));
       fragments.add(Fragment_instance.newInstance("پروفایل"));
   }

   @Override
   public Fragment_instance getItem(int position) {
       return fragments.get(position);
   }

   @Override
   public int getCount() {
       return fragments.size();
   }
}
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان