Я использую slidetablayout. Есть 5 вкладок, и я заполняю каждый из них списком из разных запросов json. Мне нужно получить имя или идентификатор вкладки при нажатии на один из элементов списка.Как получить имя вкладки
ответ
Вам нужно будет предоставить нам ваш текущий код или реализацию - это даст нам некоторое представление о том, как чтобы помочь вам.
Но моя первая догадка от реализации: Я предполагаю, что когда вы говорите SlidingTabLayout вы имеете в виде кода, описанный на андроид разработчиков: https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html#l199
Если это так, то вы можете получить имя вкладки с точки зрения пейджера, когда вкладка щелкнула и зарегистрирована в храповом слушателе:
private class TabClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
if (v == mTabStrip.getChildAt(i)) {
mViewPager.setCurrentItem(i);
//Get tab name from mViewPager - differs based on your implementation
return;
}
}
}
}
Да что один указаны в андроиде разработчиков Ok, вот ситуация
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=null;
if(position == 0){
view = getActivity().getLayoutInflater().inflate(R.layout.pager_item,container, false);
homeList = (ListView) view.findViewById(R.id.home_list);
queryImp(view, "");
homeJSONAdapter = new JSONAdapter(getActivity(), getActivity().getLayoutInflater());
homeList.setAdapter(homeJSONAdapter);
homeList.setOnItemClickListener(this);
}else{
view = getActivity().getLayoutInflater().inflate(R.layout.other_pager_item,container, false);
otherList = (ListView) view.findViewById(R.id.other_list);
queryImp(view, "other");
otherJSONAdapter = new JSONAdapterOther(getActivity(), getActivity().getLayoutInflater());
otherList.setAdapter(ekonomiaJSONAdapter);
otherList.setOnItemClickListener(this);
}
container.addView(view);
view.findViewById(R.id.item_title);
return view;
}
this is the code that populates the tabs on SlidingTabsBasicFragment and the following is the onclick for the items of the lists
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0)
{
JSONObject jsonObject = (JSONObject) homeJSONAdapter.getItem(position);
String imageURL = jsonObject.optString("img_url");
String artText = jsonObject.optJSONObject("content").optString("rendered");
String artTitle = jsonObject.optJSONObject("title").optString("rendered");
Intent detailIntent = new Intent(getActivity(), SingleArticle.class);
detailIntent.putExtra("imgURL", imageURL);
detailIntent.putExtra("articleText", artText);
detailIntent.putExtra("articleTitle", artTitle);
startActivity(detailIntent);
}else{
JSONObject jsonObject1 = (JSONObject) otherJSONAdapter.getItem(position);
String imageURL1 = jsonObject1.optString("img_url");
String artText1 = jsonObject1.optJSONObject("content").optString("rendered");
String artTitle1 = jsonObject1.optJSONObject("title").optString("rendered");
y
Intent detailIntent1 = new Intent(getActivity(), SingleArticleOther.class);
detailIntent1.putExtra("imgURL1", imageURL1);
detailIntent1.putExtra("articleText1", artText1);
detailIntent1.putExtra("articleTitle1", artTitle1);
startActivity(detailIntent1);
}
который в основном, все, что он делает, - это щелчок по элементу списка и доступ к полной статье для чтения. По какой-то причине все это путается. (когда я делаю запись в позиции, он получает позицию элемента списка, а не вкладку). Когда я пытаюсь щелкнуть элемент homeJsonAdapter, он переходит к статье другого JsonAdapter. Я не знаю, почему. Итак, что я хочу сделать, это получить имя вкладки, в которой находится список, и на основе этого имени, создать JsonAdapter и получить статью
Любая помощь по реализации этого – ddnice