2 действия в одной вкладке - PullRequest
0 голосов
/ 20 октября 2011

у меня 4 вкладки.Одна вкладка 1 (Ответить) Я хочу начать другое действие, скажем, нажмите кнопку продолжения и перейдите на другую страницу (Ответ 1), где у меня есть кнопка возврата.Все должно быть на самой вкладке 1.У меня возникают проблемы, например, если я иду 4-5 раз, я получаю стек из-за ошибки потока.

Respond.Java

package com.muo.Livegroups;

import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.util.Log;

public class Respond extends ActivityGroup 
{
    protected static LocalActivityManager mLocalActivityManager;
    public static final String LOG_TAG = "muo";
    @Override   
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.respond);

        //Continue button on Respond page
        Button next1 = (Button) findViewById(R.id.Continue);
        next1.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View view) 
            {
                Intent myIntent = new Intent(view.getContext(), Respond1.class);
                startActivityForResult(myIntent, 0);
            //  StringBuffer urlString = new StringBuffer();
            //  myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //  replaceContentView("Respond1",myIntent);

                int mInt=0;
                Log.v(LOG_TAG, "mInt Value: " + mInt);
            }
        });
    }

    public void replaceContentView(String id, Intent newIntent) 
    {
        View view = getLocalActivityManager()
                        .startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY ))
                        .getDecorView(); 
        this.setContentView(view);
    }
}

Respond1.Java

package com.muo.Livegroups;

import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class Respond1 extends ActivityGroup 
{
    protected static LocalActivityManager mLocalActivityManager;
    public static final String LOG_TAG = "muo1";
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.respond1);

        Button next = (Button) findViewById(R.id.Button03);
        next.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View view) 
            {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            //  Intent myIntent = new Intent(view.getContext(), Respond.class);
            //  StringBuffer urlString = new StringBuffer();
            //  myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //  replaceContentView("Respond",intent);

                int mInt1=0;
                Log.v(LOG_TAG, "mInt Value: " + mInt1);
            }
        });
    }

    public void replaceContentView(String id, Intent newIntent) 
    {
        View view = getLocalActivityManager()
                        .startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP ))
                        .getDecorView(); 
        this.setContentView(view);
    }
}

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Вам следует рассмотреть возможность создания двух действий фрагментов и их объединения в одно действие на вкладке.Если вы используете уровень API ниже 3,0, посмотрите пакет совместимости Android .

0 голосов
/ 01 октября 2013

основной активностью должна быть ActivityGroup и поместите этот код туда, где вы начинаете новую деятельность

  Intent intent = new Intent(v.getContext(), Activity1.class);
Activity1 parentActivity = (Activity1)getParent();  
parentActivity.replaceContentView("activity1", intent, 
             Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...