2016-05-12 3 views
0

Я использую slidetablayout. Есть 5 вкладок, и я заполняю каждый из них списком из разных запросов json. Мне нужно получить имя или идентификатор вкладки при нажатии на один из элементов списка.Как получить имя вкладки

ответ

0

Вам нужно будет предоставить нам ваш текущий код или реализацию - это даст нам некоторое представление о том, как чтобы помочь вам.

Но моя первая догадка от реализации: Я предполагаю, что когда вы говорите 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; 
       } 
      } 
     } 
    } 
+0

Любая помощь по реализации этого – ddnice

0

Да что один указаны в андроиде разработчиков 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 и получить статью

+0

Любая идея о том, как реализовать это – ddnice

+0

его нормально, я нашел решение в этом посте http://stackoverflow.com/questions/7580991/how-to-make-more-than-one-listview-respond-for-different-onitemclicklistener – ddnice