2014-01-30 1 views
0

나는 현재안드로이드 조각의 탭 내용?

TabSpec spec1=tabHost.newTabSpec("TAB 1"); 
spec1.setContent(R.id.tab1); 
spec1.setIndicator("", ressources.getDrawable(R.drawable.image_large)); 

처럼 내 탭 콘텐츠를 설정하고하지만 어떻게 그것을 말한다이

spec1.setContent(ProfileMenuAllTopics.this,MainActivity.class); 

에 대한 내용으로 활동을 설정할 수 있습니다 편집이

적용되지 않습니다 : 이 변경 방법에 대해 도움을 줄 수 있습니까?

public class ProfileMenuAllTopics extends Fragment { 
    SessionManager session; 
    JSONObject jsonobject,jsonobjectTwo; 
    JSONArray jsonarray,jsonarrayTwo; 
    ListView listview,listviewTwo; 
    ListViewAdapter adapter,adapterTwo; 
    ProgressDialog mProgressDialog; 
    ArrayList<HashMap<String, String>> arraylist; 
    ArrayList<HashMap<String, String>> arraylistTwo; 
    static String TOPICID = "topicID"; 
    static String RANK = "topicName"; 
    static String COUNTRY = "topicPhone"; 
    static String TOPICPHONE = "topicPhone"; 
    static String POPULATION = "topicDesc"; 
    static String FLAG = "topicImage"; 
    static String TALKTIME = "balanceTalkTime"; 
    private static String KEY_SUCCESS = "success"; 
    RelativeLayout webViewHolderLayout,searchRelativeView,searchRelativeViewMyLists; 
    String UserID; 
    ImageView profile_btn; 
    private View view; 
    private TransparentProgressDialog pd; 
    private Handler h; 
    private Runnable r; 
    String tabClicked; 
    JSONObject whatAreYouLooking; 
    JSONObject myTopicsList; 
    Button load_more_btn; 
    Button loadMoreMyTopics; 
    int maxRecordsHere = 10; 
    int maxMyRecordsHere = 10; 
     TabHost tabHost; 
     @TargetApi(Build.VERSION_CODES.GINGERBREAD) 
     @SuppressLint("NewApi,SetJavaScriptEnabled") 
     @SuppressWarnings("deprecation") 
     @Override 
    public View onCreateView(final LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
      if (android.os.Build.VERSION.SDK_INT > 9) { 
       StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
       StrictMode.setThreadPolicy(policy); 
       } 

     view = inflater.inflate(R.layout.profile_menu_topics_list, null); 
     h = new Handler(); 
     pd = new TransparentProgressDialog(inflater.getContext(), R.drawable.myspinner); 
     r =new Runnable() { 
      @Override 
      public void run() { 
       if (pd.isShowing()) { 
        pd.dismiss(); 
       } 
      } 
     }; 
     session = new SessionManager(inflater.getContext()); 
     session.checkLogin(); 
     HashMap<String, String> user = session.getUserDetails(); 
     UserID = user.get(SessionManager.KEY_USER_ID); 
     Resources ressources = getResources(); 
     load_more_btn = (Button) view.findViewById(R.id.loadMoreTopics); 
     loadMoreMyTopics = (Button) view.findViewById(R.id.loadMoreMyTopics); 
     tabHost=(TabHost)view.findViewById(R.id.tabHost); 
     webViewHolderLayout = (RelativeLayout) view.findViewById(R.id.webViewHolder); 
     searchRelativeView = (RelativeLayout) view.findViewById(R.id.searchRelativeView); 
     searchRelativeViewMyLists = (RelativeLayout) view.findViewById(R.id.searchRelativeViewMyLists);  
     Bundle args = getArguments(); 
     tabHost.setup(); 

     TabSpec spec1=tabHost.newTabSpec("TAB 1"); 
     spec1.setContent(R.id.tab1); 
     spec1.setIndicator("", ressources.getDrawable(R.drawable.topics_image_large)); 

     TabSpec spec2=tabHost.newTabSpec("TAB 2"); 
     spec2.setIndicator("", ressources.getDrawable(R.drawable.my_calls_large)); 
     spec2.setContent(R.id.tab2); 


     TabSpec spec3=tabHost.newTabSpec("TAB 3"); 
     spec3.setContent(R.id.tab3); 
     spec3.setIndicator("", ressources.getDrawable(R.drawable.how_it_works_large)); 
     tabHost.addTab(spec1); 
     tabHost.addTab(spec2); 
     tabHost.addTab(spec3); 

     for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) 
     { 
       tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#2AC4EA")); 
     } 



     tabHost.getTabWidget().setCurrentTab(0); 
     tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#FFFFFF")); 

     whatAreYouLookingFor(); 
     myTopicsTab(); 


     tabHost.setOnTabChangedListener(new OnTabChangeListener() { 
      @Override 
      public void onTabChanged(String arg0) { 
       for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) 
       { 
        tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#2AC4EA")); 
       } 

       tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#FFFFFF")); 

       int selectTabHere = tabHost.getCurrentTab(); 
       if(selectTabHere==0){ 
        pd.show(); 
        tabValueZero(); 
        h.postDelayed(r,5000); 
       }else if(selectTabHere==1){ 
        pd.show(); 
        tabValueOne(); 
        h.postDelayed(r,5000); 
       }else if(selectTabHere==2){ 
        pd.show(); 
        tabValueTwo(); 
        h.postDelayed(r,5000); 
       } 
      }  
     }); 


     load_more_btn.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        pd.show(); 
        maxRecordsHere = maxRecordsHere + 10; 
        getPaging(whatAreYouLooking,maxRecordsHere); 
        h.postDelayed(r,5000); 
       } 
     }); 

     loadMoreMyTopics.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        pd.show(); 
        maxMyRecordsHere = maxMyRecordsHere + 10; 
        getPagingMyTopics(whatAreYouLooking,maxRecordsHere); 
        h.postDelayed(r,5000); 
       } 
     }); 
     tabValueZero(); 
     return view; 
    } 

     private void whatAreYouLookingFor(){ 
      UserFunctions userFunction = new UserFunctions(); 
      whatAreYouLooking = userFunction.getTopicsList(); 
      getPaging(whatAreYouLooking,maxRecordsHere); 
     } 

     private void myTopicsTab(){ 
      UserFunctions userFunction = new UserFunctions(); 
      myTopicsList = userFunction.getMyTabTopicsList(UserID); 
      getPagingMyTopics(myTopicsList,maxMyRecordsHere); 
     } 

     public void getPaging(JSONObject whatAreYouLooking,int maxRecords){ 
      arraylist = new ArrayList<HashMap<String, String>>(); 
      try { 
       if (whatAreYouLooking.getString(KEY_SUCCESS) != null) { 
        String search_res = whatAreYouLooking.getString(KEY_SUCCESS); 
        if(Integer.parseInt(search_res) == 1){ 
         jsonarray = whatAreYouLooking.getJSONArray("result"); 
         JSONArray jsonWhatAreYouLookingArray = new JSONArray(whatAreYouLooking.optString("result")); 
         int totalTopics = jsonWhatAreYouLookingArray.length(); 
         if(totalTopics<=maxRecords){ 
          load_more_btn.setVisibility(View.GONE); 
         } 
         for (int w = 0; w < maxRecords; w++) { 
          HashMap<String, String> map = new HashMap<String, String>(); 
          JSONObject jsonLookingObject = jsonWhatAreYouLookingArray.getJSONObject(w); 
          map.put("topicID", jsonLookingObject.getString("topicID")); 
          map.put("Name", jsonLookingObject.getString("Name")); 
          map.put("Phone",jsonLookingObject.getString("Phone")); 
          arraylist.add(map); 
          listview = (ListView) view.findViewById(R.id.listview); 
          adapter = new ListViewAdapter(this.getActivity(), arraylist); 
          listview.setAdapter(adapter); 
         } 
        }else{ 

        } 
       }else{ 

       } 
      } catch (JSONException e) { 
       Log.e("Error", e.getMessage()); 
       e.printStackTrace(); 
      } 
     } 


     public void getPagingMyTopics(JSONObject myTopicsList,int maxMyRecordsHere){ 
      arraylistTwo = new ArrayList<HashMap<String, String>>(); 
      try { 
       if (myTopicsList.getString(KEY_SUCCESS) != null) { 
        String search_res_Two = myTopicsList.getString(KEY_SUCCESS); 
        if(Integer.parseInt(search_res_Two) == 1){ 
         jsonarrayTwo = myTopicsList.getJSONArray("result"); 
         JSONArray jsonWhatAreYouLookingArrayTwo = new JSONArray(myTopicsList.optString("result")); 
         int totalTopics = jsonWhatAreYouLookingArrayTwo.length(); 
         if(totalTopics<=maxMyRecordsHere){ 
          loadMoreMyTopics.setVisibility(View.GONE); 
         } 
         for (int w = 0; w < maxMyRecordsHere; w++) { 
          HashMap<String, String> mapTwo = new HashMap<String, String>(); 
          JSONObject jsonLookingObjectTwo = jsonWhatAreYouLookingArrayTwo.getJSONObject(w); 
          mapTwo.put("topicID", jsonLookingObjectTwo.getString("topicID")); 
          mapTwo.put("Name", jsonLookingObjectTwo.getString("Name")); 
          mapTwo.put("Phone",jsonLookingObjectTwo.getString("Phone")); 
          arraylistTwo.add(mapTwo); 
          listviewTwo = (ListView) view.findViewById(R.id.listviewTwo); 
          adapterTwo = new ListViewAdapter(this.getActivity(), arraylistTwo); 
          listviewTwo.setAdapter(adapterTwo); 
         } 
        }else{ 

        } 
       }else{ 

       } 
      } catch (JSONException e) { 
       Log.e("Error", e.getMessage()); 
       e.printStackTrace(); 
      } 
     } 



     private void setWebViewHowItworks(){ 
      WebView wv; 
      wv = (WebView) view.findViewById(R.id.webView1); 
      wv.setBackgroundColor(0); 
      wv.setBackgroundResource(android.R.color.black); 
      wv.setWebChromeClient(new WebChromeClient()); 
      wv.setWebViewClient(new WebViewClient()); 
      wv.getSettings().setJavaScriptEnabled(true); 
      wv.getSettings().setPluginsEnabled(true); 
      wv.getSettings().setUseWideViewPort(true); 
      wv.getSettings().setLoadWithOverviewMode(true); 
      wv.addJavascriptInterface(this, "webConnector"); 
      wv.addJavascriptInterface(this, "toaster"); 
      wv.clearView(); 
      wv.loadUrl("www.google.com"); 
      wv.requestLayout(); 
     } 

     private class TransparentProgressDialog extends Dialog { 

      private ImageView iv; 

      public TransparentProgressDialog(Context context, int resourceIdOfImage) { 
       super(context, R.style.TransparentProgressDialog); 
       WindowManager.LayoutParams wlmp = getWindow().getAttributes(); 
       wlmp.gravity = Gravity.CENTER_HORIZONTAL; 
       getWindow().setAttributes(wlmp); 
       setTitle(null); 
       setCancelable(false); 
       setOnCancelListener(null); 
       LinearLayout layout = new LinearLayout(context); 
       layout.setOrientation(LinearLayout.VERTICAL); 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
       iv = new ImageView(context); 
       iv.setImageResource(resourceIdOfImage); 
       layout.addView(iv, params); 
       addContentView(layout, params); 
      } 

      @Override 
      public void show() { 
       super.show(); 
       RotateAnimation anim = new RotateAnimation(0.0f, 360.0f , Animation.RELATIVE_TO_SELF, .5f, Animation.RELATIVE_TO_SELF, .5f); 
       anim.setInterpolator(new LinearInterpolator()); 
       anim.setRepeatCount(Animation.INFINITE); 
       anim.setDuration(3000); 
       iv.setAnimation(anim); 
       iv.startAnimation(anim); 
      } 
     } 

     public void tabValueZero(){ 
      searchRelativeView.setVisibility(View.VISIBLE); 
      searchRelativeViewMyLists.setVisibility(View.GONE); 
      webViewHolderLayout.setVisibility(View.GONE); 

     } 

     public void tabValueOne(){ 
      searchRelativeView.setVisibility(View.GONE); 
      searchRelativeViewMyLists.setVisibility(View.VISIBLE); 
      webViewHolderLayout.setVisibility(View.GONE); 

     } 

     public void tabValueTwo(){ 
      searchRelativeView.setVisibility(View.GONE); 
      searchRelativeViewMyLists.setVisibility(View.GONE); 
      webViewHolderLayout.setVisibility(View.VISIBLE); 
      setWebViewHowItworks(); 

     } 



} 

------------------------ 무시 --------------------- ------- 그 stackoverflow입니다 귀하의 게시물은 주로 코드가 좀 더 자세한 내용을 추가하시기 바랍니다 같습니다 그것은 stackoverflow입니다 귀하의 게시물은 주로 코드입니다 좀 더 자세한 내용을 추가하십시오 제발 그게 stackoverflow 네 게시물 같아. 대부분 코드는 좀 더 자세한 정보를 추가하십시오. 그것의 stackoverflow 당신의 게시물은 대부분 코드입니다 보이는 것 좀 더 자세한 내용을 추가하십시오.

답변

1

아래의 편집 된 코드는 내가 단편 탭 내부의 활동을 포함하도록 한 편집 코드입니다. 아무 것도 이해할 수없는 경우 알려 주시기 바랍니다.

//FragmentActivity having tabs 
package com.example.tabhost; 

import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.TabHost; 
import android.widget.TextView; 

public class MainActivity extends FragmentActivity { 

    Context mContext; 
    Intent mIntent; 

    TabHost mTabHost; 
    ViewPager mViewPager; 
    TabsAdapterActivity mTabsAdapter; 

    //Setup tab 
    private void setupTabHost() { 
     mTabHost = (TabHost) findViewById(android.R.id.tabhost); 
     mTabHost.setup(); 

     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mTabsAdapter = new TabsAdapterActivity(this, mTabHost, mViewPager); 
    } 

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

     mContext = MainActivity.this; 

     setupTabHost(); 

     addTab(R.string.mycards,"My Cards Category", MyCardsActivity.class); //My Cards 
     addTab(R.string.yourcards,"Your Cards Category", YourCardsActivity.class); //Shared Cards 

    } 

    //Add tab 
    private void addTab(int headingTextId, String tabSpec, Class<?> fragmentclass){ 

     LayoutInflater inflater_mycard = getLayoutInflater(); 
     View view = inflater_mycard.inflate(R.layout.tab_style, null); 
     TextView tab_heading = (TextView) view.findViewById(R.id.tab_heading); 

     tab_heading.setText(getResources().getString(headingTextId)); 
     mTabsAdapter.addTab(mTabHost.newTabSpec(tabSpec).setIndicator(view), fragmentclass, null); 
    } 



} 
//TabsAdapter designed to include Activity 
package com.example.tabhost; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Rect; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TabHost; 
import android.widget.TabWidget; 

import java.util.ArrayList; 

import com.example.tabhost.TabsAdapterFragment.DummyTabFactory; 
import com.example.tabhost.TabsAdapterFragment.TabInfo; 

/** 
* This is a helper class that implements the management of tabs and all 
* details of connecting a ViewPager with associated TabHost. It relies on a 
* trick. Normally a tab host has a simple API for supplying a View or 
* Intent that each tab will show. This is not sufficient for switching 
* between pages. So instead we make the content part of the tab host 
* 0dp high (it is not shown) and the TabsAdapter supplies its own dummy 
* view to show as the tab content. It listens to changes in tabs, and takes 
* care of switch to the correct paged in the ViewPager whenever the selected 
* tab changes. 
*/ 
public class TabsAdapterActivity extends PagerAdapter 
     implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener { 
    private final Context mContext; 
    private final TabHost mTabHost; 
    private final ViewPager mViewPager; 
    private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); 
    private final Rect mTempRect = new Rect(); 
    private TabHost.OnTabChangeListener mOnTabChangeListener; 

    static final class TabInfo { 
     public final String tag; 
     private final Class<?> clss; 
     private final Bundle args; 

     TabInfo(String _tag, Class<?> _class, Bundle _args) { 
      tag = _tag; 
      clss = _class; 
      args = _args; 
     } 
    } 

    static class DummyTabFactory implements TabHost.TabContentFactory { 
     private final Context mContext; 

     public DummyTabFactory(Context context) { 
      mContext = context; 
     } 

     @Override 
     public View createTabContent(String tag) { 
      View v = new View(mContext); 
      v.setMinimumWidth(0); 
      v.setMinimumHeight(0); 
      return v; 
     } 
    } 

    public TabsAdapterActivity(Activity activity, TabHost tabHost, ViewPager pager) { 
     mContext = activity; 
     mTabHost = tabHost; 
     mViewPager = pager; 
     mTabHost.setOnTabChangedListener(this); 
     mViewPager.setAdapter(this); 
     mViewPager.setOnPageChangeListener(this); 
    } 

    public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) { 
     tabSpec.setContent(new DummyTabFactory(mContext)); 
     String tag = tabSpec.getTag(); 

     TabInfo info = new TabInfo(tag, clss, args); 
     mTabs.add(info); 
     mTabHost.addTab(tabSpec); 
     notifyDataSetChanged(); 
    } 

    @Override 
    public int getCount() { 
     return mTabs.size(); 
    } 

    @Override 
    public Class<? extends TabInfo> instantiateItem(ViewGroup container, int position) { 
     /*View view = mTabs.get(position).view; 
     container.addView(view); 
     return view;*/ 
     return mTabs.get(position).getClass(); 


    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((View)object); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == object; 
    } 

    public void setOnTabChangedListener(TabHost.OnTabChangeListener listener) { 
     mOnTabChangeListener = listener; 
    } 

    @Override 
    public void onTabChanged(String tabId) { 
     int position = mTabHost.getCurrentTab(); 
     mViewPager.setCurrentItem(position); 
     if (mOnTabChangeListener != null) { 
      mOnTabChangeListener.onTabChanged(tabId); 
     } 
    } 

    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
    } 

    @Override 
    public void onPageSelected(int position) { 
     // Unfortunately when TabHost changes the current tab, it kindly 
     // also takes care of putting focus on it when not in touch mode. 
     // The jerk. 
     // This hack tries to prevent this from pulling focus out of our 
     // ViewPager. 
     TabWidget widget = mTabHost.getTabWidget(); 
     int oldFocusability = widget.getDescendantFocusability(); 
     widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); 
     mTabHost.setCurrentTab(position); 
     widget.setDescendantFocusability(oldFocusability); 

     // Scroll the current tab into visibility if needed. 
     View tab = widget.getChildTabViewAt(position); 
     mTempRect.set(tab.getLeft(), tab.getTop(), tab.getRight(), tab.getBottom()); 
     widget.requestRectangleOnScreen(mTempRect, false); 

     // Make sure the scrollbars are visible for a moment after selection 
     /*final View contentView = mTabs.get(position).view; 
     if (contentView instanceof CaffeinatedScrollView) { 
      ((CaffeinatedScrollView) contentView).awakenScrollBars(); 
     }*/ 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    } 
} 
//-------Supporting XML layouts & drawables----------- 
// tab_style.xml place inside layout 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabsLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/tab_bg_selector" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:padding="10dip" > 

    <TextView 
     android:id="@+id/tab_heading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@drawable/tab_text_selector" 
     android:textSize="15sp" /> 

</LinearLayout> 
//place below in drawable folder 
//tab_bg_selected.xml 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabsLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/tab_bg_selector" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:padding="10dip" > 

    <TextView 
     android:id="@+id/tab_heading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@drawable/tab_text_selector" 
     android:textSize="15sp" /> 

</LinearLayout> 
//tab_bg_selector.xml 
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <gradient 
     android:angle="-90" 
     android:centerColor="#2A85C4" 
     android:endColor="#1B73AD" 
     android:startColor="#1B73AD" /> 

</shape> 
//tab_bg_unselected.xml 
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <gradient 
     android:angle="-90" 
     android:centerColor="#424242" 
     android:endColor="#5C5C5C" 
     android:startColor="#5C5C5C" /> 

</shape> 
//tab_bg_selector.xml 
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_selected="true" android:color="@android:color/white"/> 
    <item android:state_focused="true" android:color="@android:color/white"/> 
    <item android:state_pressed="true" android:color="@android:color/white"/> 
    <item android:color="#f8f8f8"/> 

</selector>