需要在新活动中显示结果

时间:2013-12-02 08:19:48

标签: android eclipse

第一个活动的结果显示在同一个屏幕(窗口)(活动)。我只需要在另一个活动中显示结果。有人请告诉我该怎么做。主要活动如下:< / p>

package com.example.knowyourself;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;
import android.view.View.OnClickListener;

public class MainActivity extends Activity 
{
Button submit;  
String temp;    
DatePicker dt;
int day, month, year, choice;

@Override
protected void onCreate(Bundle savedInstanceState)      
{
    super.onCreate(savedInstanceState);          
    setContentView(R.layout.activity_main);     
    addListenerOnButton();  
}

public void addListenerOnButton()
{
    submit = (Button) findViewById(R.id.button1);       
    dt = (DatePicker) findViewById(R.id.datePicker1);   
    submit.setOnClickListener(new OnClickListener()     
    {
        public void onClick(View v) 
        {
            day = dt.getDayOfMonth();   
            month = dt.getMonth();      
            year = dt.getYear();        
            choice = (day + month + year) % 5;
            switch (choice) 
            {
            ..............
                            ..............
            }
            Toast t = Toast.makeText(MainActivity.this, "You are" +           
                    temp,Toast.LENGTH_SHORT);                                   
            t.show();                                                       
        }
});
}
}

另外,activity_main是一个s:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/green"
>

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="76dp"
    android:text="@string/Date"
    android:textAppearance="?android:attr/textAppearanceLarge"
    tools:ignore="HardcodedText" 
    android:textColor="@color/blue"
    android:textScaleX="0.9"
     />

<DatePicker
    android:id="@+id/datePicker1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="61dp"
    android:background="@color/lightblue"

    />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/datePicker1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="54dp"
    android:text="     "
    tools:ignore="HardcodedText"
    android:background="@drawable/one"
    />

</RelativeLayout>

5 个答案:

答案 0 :(得分:2)

试试这个:

在MainActivity中:

Intent intent = new Intent();
intent.setClass(this, Other_Activity.class);
intent.putExtra("EXTRA_ID", "SOME DATAS");
startActivity(intent);

在Other_Activity中:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String datas= extras.getString("EXTRA_ID");
if (datas!= null) {
    // do stuff
}        
}

同时检查:Android Intents

希望这有帮助。

答案 1 :(得分:1)

要开始新活动,只需使用Intents即可。例如,如果要从当前活动中启动存储在NewActivity.java中的活动,请使用以下命令:

Intent i = new Intent(this, NewActivity.class);
i.startActivity();

但是,如果要将数据从一个活动解析为另一个活动,则需要使用参数。例如,如果您的ouptut位于主要活动的temp变量中,请使用此变量将其传递给新活动:

Intent i = new Intent(this, NewActivity.class);
i.putExtra("output", temp);
i.startActivity();

然后从新活动的onCreate()方法中检索字符串:

String result = getIntent().getStringExtra("output");
Toast.makeText(getActivity(), "You are " + result, Toast.LENGTH_SHORT).show();

答案 2 :(得分:1)

假设您想在单击提交按钮时打印结果,请执行以下步骤。

  • 为预期活动创建意图

       Intent intent = new Intent(MainActivity.this, OtherActivity.class);
    
    • 将结果设置为该意图

intent.putExtra(“key”,value);

  • 开始新活动

    startActivity(intent);
    
  • 在其他活动中获得结果

    int value = getIntent.getExtras.get("key");
     // not necessarily int, any value
    
  • 在任何Textview

    中显示结果
     textView.setText(""+value);
    

答案 3 :(得分:0)

您需要制作新的布局,在新的布局屏幕上,您可以制作出您想要的内容。

答案 4 :(得分:0)

您所询问的内容尚不清楚,但我认为您需要的是startActivityForResult