PDA

View Full Version : عدم نمایش همزمان تب ها



barnamenevisjavan
دوشنبه 16 شهریور 1394, 15:39 عصر
سلام من یه مشکلی دارم توی برنامم من 2 تا تب دارم با دستور زیر تب اضافه میکنم همونطور که از کدها مشخصه هر تب به یه فرگمنت جدا وصل شده ولی وقتی برنامه رو اجرا میکنم فقط اطلاعات یه تب رو نشون میده و وقتی میرم تب 2 باز همون اطلاعات تب 1 هستش کجای کارم ایراد داره؟
private void setupViewPager(ViewPager viewPager) {
Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(new CheeseListFragment(), "Category 1");
adapter.addFragment(new LibraryTwo(), "Category 2");
viewPager.setAdapter(adapter);
}


حالا توی فرگمنت CheeseListFragment هم کدهای زیر رو دارم

public class CheeseListFragment extends Fragment {


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RecyclerView rv = (RecyclerView) inflater.inflate(
R.layout.fragment_cheese_list, container, false);
setupRecyclerView(rv);
return rv;
}


public void setupRecyclerView(RecyclerView recyclerView) {
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(getActivity(),
getRandomSublist(Cheeses.sCheeseStrings)));
// Toast.makeText(getActivity()," :pos", Toast.LENGTH_LONG).show();


}


private List<String> getRandomSublist(String[] array) {
ArrayList<String> list = new ArrayList<>();
// Random random = new Random();
//while (list.size() < amount) {
// list.add(array[random.nextInt(array.length)]);
for (int i = 0; i < array.length; i++) {
// list.clear();
list.add(array[i]);
}
//}
return list;
}




public static class SimpleStringRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {


private final TypedValue mTypedValue = new TypedValue();
private int mBackground;
private List<String> mValues;


public static class ViewHolder extends RecyclerView.ViewHolder {
public String mBoundString;


public final View mView;
public final ImageView mImageView;
public final TextView mTextView;


public ViewHolder(View view) {
super(view);
mView = view;
mImageView = (ImageView) view.findViewById(R.id.avatar);
mTextView = (TextView) view.findViewById(android.R.id.text1);
}


@Override
public String toString() {
return super.toString() + " '" + mTextView.getText();
}
}


public String getValueAt(int position) {
return mValues.get(position);
}


public SimpleStringRecyclerViewAdapter(Context context, List<String> items) {
context.getTheme().resolveAttribute(R.attr.selecta bleItemBackground, mTypedValue, true);
mBackground = mTypedValue.resourceId;
mValues = items;
}


@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
view.setBackgroundResource(mBackground);
return new ViewHolder(view);
}


@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.mBoundString = mValues.get(position);
holder.mTextView.setText(mValues.get(position));
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = v.getContext();
Intent intent = new Intent(context, CheeseDetailActivity.class);
intent.putExtra(CheeseDetailActivity.EXTRA_NAME, holder.mBoundString);
final int position = holder.getAdapterPosition();
//Toast.makeText(context,position+" :pos",Toast.LENGTH_LONG).show();
// intent.putExtra("ok","ok");
intent.putExtra("DataList",position+"s");
context.startActivity(intent);




}
});


Glide.with(holder.mImageView.getContext())
.load(Cheeses.getRandomCheeseDrawable())
.fitCenter()
.into(holder.mImageView);
}


@Override
public int getItemCount() {
return mValues.size();
}


}
}




فرگمنت LibraryTwo هم تقریبا مشابه این هست با این تفاوت که کدهای زیر یکم تغییر دادم و لایوت های دیگه رو ادرس دادم
RecyclerView rv = (RecyclerView) inflater.inflate(
R.layout.fragment_listTow, container, false);


recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(getActivity(),
getRandomSublist(Cheeses.Librarystringz)));

public ViewHolder(View view) {
super(view);
mView = view;
mImageView = (ImageView) view.findViewById(R.id.profile);
mTextView = (TextView) view.findViewById(android.R.id.text2);
}


@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_Two, parent, false);
view.setBackgroundResource(mBackground);
return new ViewHolder(view);
}



پ.ن=یادم رفت بگم اطلاعات بصورت آرایه هستن و لود میشن ارایه ها توی این تابع هستن Librarystringz و sCheeseStrings