使用Intent在活动之间传递数据

Dev*_*ath 28 android android-intent

我试图在活动之间传递数据

我使用Intent在常规活动之间传递数据

考虑下面的代码::

AndroidTabRestaurantDescSearchListView.java

public class AndroidTabRestaurantDescSearchListView extends TabActivity {

    // TabSpec Names
    private static final String INBOX_SPEC = "Rating";
    private static final String OUTBOX_SPEC = "Price";

    Button Photos;
    Button Filter;
    Button Search;

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

        TabHost tabHost = getTabHost();

        // Inbox Tab
        TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
        Intent inboxIntent = new Intent(this, RatingDescriptionSearchActivity.class);
        inboxSpec.setIndicator(INBOX_SPEC);
        // Tab Content
        inboxSpec.setContent(inboxIntent);

        // Outbox Tab
        TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC);
        Intent PriceIntent = new Intent(this, PriceDescriptionSearchActivity.class);
        PriceSpec .setIndicator(OUTBOX_SPEC);
        PriceSpec.setContent(PriceIntent);


        // Adding all TabSpec to TabHost
        tabHost.addTab(inboxSpec); 
        tabHost.addTab(PriceSpec); 

        //Set the current value tab to default first tab
        tabHost.setCurrentTab(0);

    }

}
Run Code Online (Sandbox Code Playgroud)

假设我从所谓的一些其它活动将数据发送Activity-1AndroidTabRestaurantDescSearchListView作为意图

现在我怎样才能收到AndroidTabRestaurantDescSearchListView我从中得到的数据Activity-1,然后再将其传递给RatingDescriptionSearchActivity

Pictoral表示是 ::

在此输入图像描述

{EDIT} - 如果这可以基于答案--- Ambiguity,因为AndroidTabRestaurantDescSearchListView是一个标签活动

TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
        Intent inboxIntent = new Intent(this, RatingDescriptionActivity.class);
        intent.putExtra("keyName", value);
        inboxSpec.setIndicator(INBOX_SPEC);
        // Tab Content
        inboxSpec.setContent(inboxIntent);
Run Code Online (Sandbox Code Playgroud)

GrI*_*sHu 62

将数据传递Activity-1AndroidTabRes..如下:

在发送活动时......

Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class);
intent.putExtra("keyName","value");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

AndroidTabRes..活动...

  String data = getIntent().getExtras().getString("keyName");
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过发送活动获得接收活动的数据...

在你的AndroidTabRestaurantDescSearchListView班上,这样做:

String value= getIntent().getStringExtra("keyName");

Intent intent = new Intent(this, RatingDescriptionSearchActivity.class);
intent.putExtra("keyName", value);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

然后在你的RatingDescriptionSearchActivity课堂上,这样做:

 String data= getIntent().getStringExtra("keyName");
Run Code Online (Sandbox Code Playgroud)


Jan*_*ans 7

从您的AndroidTabRestaurantDescSearchListView活动中 试试这个

Intent intent  = new Intent(this,RatingDescriptionSearchActivity.class );
intent.putExtras( getIntent().getExtras() );
startActivity( intent );  
Run Code Online (Sandbox Code Playgroud)

然后从RatingDescriptionSearchActivity活动中调用

getIntent().getStringExtra("key")
Run Code Online (Sandbox Code Playgroud)


Swe*_*r ツ 5

您可以使用Bundle来获取数据:

Bundle extras = intent.getExtras();
String data = extras.getString("data"); // use your key 
Run Code Online (Sandbox Code Playgroud)

您可以再次将此数据用于下一个活动:

 Intent intent = new Intent(this, next_Activity.class);
   intent.putExtra("data", data);
   startActivity(intent);
Run Code Online (Sandbox Code Playgroud)