Я начинаю, и мне нужно знать, как изменить имена табов и имена фрагментов в моем приложении, пожалуйста, помогите мне, и когда я использую строку и указываю имена для вкладок и изменяю логику на вкладке Names.length, тогда мое приложение выйдет из строя, сказав, что «к сожалению приложение было остановлено». пожалуйста, помогите мне исправить это.Мне нужно изменить имена вкладок в tabhost
Вот главный 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);
}
}
Знаете ли вы, что используете устаревшие методы? Вместо этого вы должны использовать AppCompatActivity, Toolbar и ViewPager. –
да меняет их – Rohith