在另一个活动中显示结果

时间:2013-12-02 13:29:28

标签: android

之前问过这个问题,但没有得到正确的答案。我是一个初学者。所以最初难以应对。程序的输出显示在同一个活动中。我只是想看到另一个活动中显示的结果。下面是mainActivity.java

package com.example.knowyourself;

import android.os.Bundle;

public class MainActivity extends Activity {
Button submit;  
String temp,out;    
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) 
            {
            ...........
                            ...........
            out="You are"+temp;
            Toast t = Toast.makeText(MainActivity.this,out, 
                    Toast.LENGTH_SHORT);                                    
            t.show();                                                       
        }
});
}
}

activity_main.xml中

<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 :(得分:1)

请删除吐司并在您的文件中执行此操作。

Intent i = new Intent(MainActivity.this, SecondActivity.class);   
i.putExtra("STRING_DATE", out);
startActivity(i);

on the Second Activity,在你的onCreate()方法中做这样的事,

Textv = (TextView)findViewById(R.id.tv);
String output = getIntent().getExtras().getString("STRING_DATE");
Textv.setText(output);

结果将显示在第二个活动中;

答案 1 :(得分:0)

您可以使用Intent

out发送到其他活动

有些事情:

Intent intent = new Intent(MainActivity.this,AnotherActivity.class);
intent.putExtra("out",out);
startActivity(intent);

另一种选择是SharedPreferences,但在这种情况下,我觉得Intent更好。

答案 2 :(得分:0)

尝试阅读this,这是初学者的好教程,您将更好地理解将数据从当前活动传递到另一个活动。这也是我的第一个教程。

答案 3 :(得分:0)

使用这样的意图发送数据。

Intent i = new Intent(MainActivity.this,SecondActivity.class); i.putExtra("yourdataName",yourdataValue);

使用像这样的Bundle在SecondActivity中获取数据。

Bundle b = getIntent().getExtras(); 
String strUrData=b.getString("yourdataName");

答案 4 :(得分:0)

 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) 
        {
        ...........
                        ...........
        out="You are"+temp;
        Intent intent = new Intent(MainActivity.this,AnotherActivity.class);
        intent.putExtra("out",out);
       startActivity(intent);                                                     
    }
    });
   }

并在第二项活动中:

   public class AnotherActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState)      
  {
   super.onCreate(savedInstanceState);         
   setContentView(R.layout.activity_main1);     
    Bundle b=getIntent().getExtras();
    if(b!=null){
    String str=b.getString("out");

     Toast t = Toast.makeText(AnotherActivity.this,str, 
                Toast.LENGTH_SHORT);                                    
        t.show(); 

    }

  }

  and don't forget to declare the Second Activity in the manifest file