【问题标题】:Android - Getting input from last activity to new activity with xml layout being shownAndroid - 从上一个活动获取输入到新活动,并显示 xml 布局
【发布时间】:2012-10-09 14:28:15
【问题描述】:

在我的应用程序的主要活动中,它让用户输入他们的姓名并单击班次编号并单击提交。当他们点击提交时,它会将他们带到一个新页面(活动)并且该页面再次显示他们的姓名和班次编号。但在下面,我希望它显示计时器(xml 中提供的计时器),但我不知道如何让它在一个活动上同时显示布局的内容和输入(意图)。

帮助?有没有办法让两者合作?

这是我的第二个活动的 .java 文件: 包 com.cyapps.downtimer;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class WinderDTActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Bundle extras = getIntent().getExtras();
        if (extras != null){
            TextView textView = new TextView(this);
            String opName = extras.getString(MainActivity.OP_NAME);
            String rChoice = extras.getString(MainActivity.RADIO_CHOSEN);
            textView.setTextSize(15);
            textView.setText( "\n\tOperator Name: " + opName + "\n\t" + rChoice );
            setContentView(textView);
        }
    }
}

这是第二个活动的 XML:

    <TimePicker
        android:id="@+id/timePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/submit" />

</LinearLayout>

我想要的是让第二个页面/活动显示 XML 布局,并显示我从前一页获得的输入。这可能吗?

【问题讨论】:

    标签: android xml layout android-activity


    【解决方案1】:

    在第二个活动中,使用 setContentView() 代替 setContentView(textView) 并提供包含第二个活动的所有视图的布局:

     setContentView(R.layout.SECOND_ACTIVITY_LAYOUT);
    

    为了显示第一个活动的值,在开始新活动时通过意图传递它们。您可以通过本教程了解意图 http://www.vogella.com/articles/AndroidIntent/article.html

    编辑: 使用意图将数据推送到目标活动:

    在您的第一个活动中在开始意图之前使用 putExtra() 添加新的名称/值对:

    i.putExtra("message", This is a string);
    i.putExtra("age", 25);
    

    在您的第二个活动中获取传入的 Bundle 对象:

    Bundle extras = getIntent().getExtras();
    

    检查 extra 是否为 null 并检索值:

    if (extras != null) {
        String message = extras.getString("message");
        int a = extras.getInt("age");
    }
    

    现在您可以使用 message 和变量的值设置 TextView 的文本。

    【讨论】:

    • 我已经做到了,但是使用 R.layout.second_Activty_layout 东西只是显示了我希望它显示的布局,但它没有显示我从最后一个活动中输入的内容。有了意图,我不得不将意图推送到 textview 中,并显示 textview 的内容。有没有更简单的方法来显示两者?还是把它们混在一起?
    • Intent 是在目标活动中显示简单内容(如字符串、整数或数组)的最佳方式。请检查我的答案的编辑。我举了一个例子,说明如何通过 Intents 将 String 和 Integer 传递给其他活动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多