Переключить TabActivity внутри Android деятельности - PullRequest
1 голос
/ 14 декабря 2011

Я пытаюсь изменить текущую Таб.Я ищу подходящие проблемы, но это не решило мою собственную.У меня есть активность вкладки, как это

<!-- language: java -->   
public class myTabActivity extends TabActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final TabHost mtabHost = getTabHost();
    int tabnum = getIntent().getIntExtra("currenttab", 0);


    mtabHost.addTab(mtabHost.newTabSpec("tab1")
            .setIndicator("firsttab")
                .setContent(new Intent(this, tabA.class)));
    mtabHost.addTab(mtabHost.newTabSpec("tab1")
            .setIndicator("secondtab")
                .setContent(new Intent(this, tabB.class)));
     setCurrentTab(tabnum);
}
private boolean setCurrentTab(int i) {
    if (getParent() instanceof SimpleSundayScoutUIActivity) {
        ((SimpleSundayScoutUIActivity) getParent()).getTabHost().setCurrentTab(i);
        return true;
    }
    return false;
}

, и операция активности TabA, как это

public class text extends Activity {
myTabActivity mA = (myTabActivity) this.getParent();
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.mainpage);
    Button startbutton= (Button) findViewById(R.id.searchbutton);
    startbutton.setOnClickListener(mNewListener);
}
private OnClickListener mNewListener = new OnClickListener() {

    public void onClick(View v) {
       Intent intent = new Intent(v.getContext(),SimpleSundayScoutUIActivity.class);
       intent.putExtra("currenttab", 1);
       startActivity(intent);
    }
};

означает, что я хочу сделать, это нажать на кнопку tabA, а затем виджет вкладки долженпокажи мне tabB, но он не работает, как это

какие-либо предложения?извините, я не совсем вписываюсь в цитаты надеюсь, что это читабельно

спасибо за помощь, Патрик

edit

mokup за то, что я хочу сделать http://tinypic.com/r/f6uyq/5

1 Ответ

0 голосов
/ 14 декабря 2011

Отредактировано:

Класс вкладки:

public class myTabActivity extends TabActivity {
public static TabHost mtabHost; // change to public static
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     mtabHost = getTabHost();
    int tabnum = getIntent().getIntExtra("currenttab", 0);


    mtabHost.addTab(mtabHost.newTabSpec("tab1")
            .setIndicator("firsttab")
                .setContent(new Intent(this, tabA.class)));
    mtabHost.addTab(mtabHost.newTabSpec("tab1")
            .setIndicator("secondtab")
                .setContent(new Intent(this, tabB.class)));
     setCurrentTab(tabnum);
}
private boolean setCurrentTab(int i) {
    if (getParent() instanceof SimpleSundayScoutUIActivity) {
        ((SimpleSundayScoutUIActivity) getParent()).getTabHost().setCurrentTab(i);
        return true;
    }
    return false;
}

Класс кнопок:

public class text extends Activity {
myTabActivity mA = (myTabActivity) this.getParent();
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.mainpage);
    Button startbutton= (Button) findViewById(R.id.searchbutton);
    startbutton.setOnClickListener(mNewListener);
}
private OnClickListener mNewListener = new OnClickListener() {

    public void onClick(View v) {
     myTabActivity.mtabHost.setCurrentTab(1); //Remove .this 

    }
};
...