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