Вложенные действия Android - PullRequest
       16

Вложенные действия Android

0 голосов
/ 26 февраля 2011

Этим утром я искал последние три часа, чтобы узнать, как запустить действие внутри действия с вкладками.

До сих пор я обнаружил, что мне нужно использовать действие с вкладками, и нашел несколько примеров в Интернете.,

Однако даже при копировании и вставке ни одна из них не работает!

Я могу переключаться между вкладками, если они ссылаются на элемент textview внутри layout / main.xml, без проблем.Однако, как только я нажимаю на вкладку, которая ссылается на класс TabActivity, он мгновенно падает.

Вот код, который я использовал:

Первый класс - main.java, который создает вкладки и намерен загрузить FirstGroup.class. FirstGroup.java - это ActivityGroup, которая откроет CitiesActivity.java.,

Все виды деятельности городов выполняются в печатном виде на экране

package com.carbonaware.guigps;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;

public class main extends TabActivity{

    public TabHost tabHost;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

            // Get the tabHost
        this.tabHost = getTabHost();

        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch the first Activity for the tab (to be reused)
        intent = new Intent();

        intent.setClass(this, FirstGroup.class);

        // Initialize a TabSpec for the first tab and add it to the TabHost
        tabHost.addTab(tabHost.newTabSpec("FirstGroup").setIndicator("FirstGroup").setContent(R.id.textview1));
        tabHost.addTab(tabHost.newTabSpec("SecondGroup").setIndicator("SecondGroup").setContent(R.id.textview2));
        tabHost.addTab(tabHost.newTabSpec("ThirdGroup").setIndicator("ThirdGroup").setContent(R.id.textview3));
        tabHost.addTab(tabHost.newTabSpec("FourthGroup").setIndicator("FourthGroup").setContent(intent));

        tabHost.setCurrentTab(0);

    }
}

package com.carbonaware.guigps;

import java.util.ArrayList;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;

public class FirstGroup extends ActivityGroup {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          //you can get the local activitymanager to start the new activity

          View view = getLocalActivityManager()
                                    .startActivity("CitiesActivity", new
          Intent(this,CitiesActivity.class)
                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                                    .getDecorView();
           this.setContentView(view);

       }
    }

package com.carbonaware.guigps;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class CitiesActivity extends Activity{

       // Data to put in the ListAdapter

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        TextView t = (TextView)findViewById(R.string.hello);


    }

}

Любая помощь будет в полной мере оценена!

1 Ответ

1 голос
/ 26 февраля 2011

Может быть, это глупый вопрос, но объявили ли вы FirstGroup и CitiesActivity в качестве действий в своем манифесте?

(и, возможно, посмотрите / опубликуйте трассировку стека из LogCat - как правило, это дает вам довольно вескую причину, по которой происходит сбой).

...