Android 我需要在tabhost中更改选项卡名称

Android 我需要在tabhost中更改选项卡名称,android,Android,我是一个初学者,我需要知道如何在我的应用程序中更改选项卡名称和片段名称。请帮助我,当我使用字符串并提供选项卡名称,并将逻辑更改为选项卡名称。然后我的应用程序崩溃,并说“不幸的是,应用程序已停止”。请帮我修一下这个 下面是主要的activity.java代码 package com.tech2dsk.musicdsk; import java.util.List; import java.util.Vector; import com.tech2dsk.adapters.MyFragmentP

我是一个初学者,我需要知道如何在我的应用程序中更改选项卡名称和片段名称。请帮助我,当我使用字符串并提供选项卡名称,并将逻辑更改为选项卡名称。然后我的应用程序崩溃,并说“不幸的是,应用程序已停止”。请帮我修一下这个

下面是主要的activity.java代码

package com.tech2dsk.musicdsk;

import java.util.List;
import java.util.Vector;

import com.tech2dsk.adapters.MyFragmentPagerAdapter;
import com.tech2dsk.fragments.Fragment1;
import com.tech2dsk.fragments.Fragment2;
import com.tech2dsk.fragments.Fragment3;
import com.tech2dsk.fragments.Fragment4;
import com.tech2dsk.musicdsk.R;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;

public class MainActivity extends ActionBarActivity implements
        OnTabChangeListener, OnPageChangeListener {

    private TabHost tabHost;
    private ViewPager viewPager;
    private MyFragmentPagerAdapter myViewPagerAdapter;
    int i = 0;

    // fake content for tabhost
    class FakeContent implements TabContentFactory {
        private final Context mContext;

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

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

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

        i++;

        // init tabhost
        this.initializeTabHost(savedInstanceState);

        // init ViewPager
        this.initializeViewPager();

    }

    private void initializeViewPager() {
        List<Fragment> fragments = new Vector<Fragment>();

        fragments.add(new Fragment1());
        fragments.add(new Fragment2());
        fragments.add(new Fragment3());
        fragments.add(new Fragment4());


        this.myViewPagerAdapter = new MyFragmentPagerAdapter(
                getSupportFragmentManager(), fragments);
        this.viewPager = (ViewPager) super.findViewById(R.id.viewPager);
        this.viewPager.setAdapter(this.myViewPagerAdapter);
        this.viewPager.addOnPageChangeListener(this);

        onRestart();

    }

    private void initializeTabHost(Bundle args) {

        tabHost = (TabHost) findViewById(android.R.id.tabhost);
        tabHost.setup();

        for (int i = 1; i <= 4; i++) {

            TabHost.TabSpec tabSpec;
            tabSpec = tabHost.newTabSpec("Tab " + i);
            tabSpec.setIndicator("Tab " + i);
            tabSpec.setContent(new FakeContent(this));
            tabHost.addTab(tabSpec);
        }
        tabHost.setOnTabChangedListener(this);
    }

    @Override
    public void onTabChanged(String tabId) {
        int pos = this.tabHost.getCurrentTab();
        this.viewPager.setCurrentItem(pos);

        HorizontalScrollView hScrollView = (HorizontalScrollView) findViewById(R.id.hScrollView);
        View tabView = tabHost.getCurrentTabView();
        int scrollPos = tabView.getLeft()
                - (hScrollView.getWidth() - tabView.getWidth()) / 2;
        hScrollView.smoothScrollTo(scrollPos, 0);

    }

    @Override
    public void onPageScrollStateChanged(int arg0) {
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    }

    @Override
    public void onPageSelected(int position) {
        this.tabHost.setCurrentTab(position);
    }

}
package com.tech2dsk.musicdsk;
导入java.util.List;
导入java.util.Vector;
导入com.tech2dsk.adapters.MyFragmentPagerAdapter;
导入com.tech2dsk.fragments.Fragment1;
导入com.tech2dsk.fragments.Fragment2;
导入com.tech2dsk.fragments.Fragment3;
导入com.tech2dsk.fragments.Fragment4;
导入com.tech2dsk.musicdsk.R;
导入android.content.Context;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.support.v4.view.ViewPager;
导入android.support.v4.view.ViewPager.OnPageChangeListener;
导入android.support.v7.app.ActionBarActivity;
导入android.view.view;
导入android.widget.HorizontalScrollView;
导入android.widget.TabHost;
导入android.widget.TabHost.OnTabChangeListener;
导入android.widget.TabHost.TabContentFactory;
公共类MainActivity扩展了ActionBarActivity实现
OnTabChangeListener,OnPageChangeListener{
私有TabHost TabHost;
私人视页机视页机;
私人MyFragmentPagerAdapter myViewPagerAdapter;
int i=0;
//tabhost的假内容
类FakeContent实现TabContentFactory{
私有最终上下文mContext;
公开伪造内容(上下文){
mContext=上下文;
}
@凌驾
公共视图createTabContent(字符串标记){
视图v=新视图(mContext);
v、 设置最小高度(0);
v、 设置最小宽度(0);
返回v;
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
i++;
//init tabhost
这个。初始化etabhost(savedInstanceState);
//初始化视图寻呼机
this.initializeviewpage();
}
private void initializeviewpage(){
列表片段=新向量();
添加(新的Fragment1());
添加(新的Fragment2());
添加(新的Fragment3());
添加(新的Fragment4());
this.myViewPagerAdapter=新的MyFragmentPagerAdapter(
getSupportFragmentManager(),片段);
this.viewPager=(viewPager)super.findViewById(R.id.viewPager);
this.viewPager.setAdapter(this.myViewPagerAdapter);
this.viewPager.addOnPageChangeListener(this);
onRestart();
}
私有void初始值setabhost(Bundle args){
tabHost=(tabHost)findviewbyd(android.R.id.tabHost);
tabHost.setup();

对于(inti=1;i在xml中添加以下代码


在xml中添加以下代码


如果要以编程方式进行,请将此方法添加到FragmentPagerAdapter:

@Override
public CharSequence getPageTitle(int position) {
    return translateIntoName(position); //replace this with your logic
}

此外,您还应该使用tabhost,而不是tabhost。

如果您希望以编程方式执行此操作,请将此方法添加到FragmentPagerAdapter:

@Override
public CharSequence getPageTitle(int position) {
    return translateIntoName(position); //replace this with your logic
}

您还应该使用而不是tabhost。

您知道您正在使用不推荐的方法吗?您应该使用AppCompatActivity、Toolbar和ViewPager。是的,您会更改它们吗?您知道您正在使用不推荐的方法吗?您应该使用AppCompatActivity、Toolbar和ViewPager。是的,您会更改它们我已将我的逻辑包含在mainactivi中java本身,因此对activity_main.xml deoesnt工作进行更改我已经将我的逻辑包含在mainactivity.java本身中,因此对activity_main.xml deoesnt工作进行更改