记住来自不同屏幕的按钮点击

时间:2013-06-18 20:33:00

标签: java android xml onclicklistener

这是我第一次尝试制作Android应用程序或处理java,所以请耐心等待我的问题:(

我要做的是让屏幕1有几个按钮,按下时,它会将用户带到另一组按钮的屏幕-2。按下屏幕-2中的按钮,用户将被带到一个新屏幕,其中包含一些文本,基于他按下的按钮,以及按顺序。

与每个屏幕中的其他按钮相同。

我已经拥有的是屏幕1充满按钮及其ID。我不确定下一部分何处开始。我可以为screen-1中的每个按钮创建一个onClick活动,但是screen-3如何记住在屏幕-1和屏幕-2上按下了哪些按钮?

activity_main.xml中

<Button 
            android:id="@+id/button1"
            android:layout_height="wrap_content"
            android:layout_width="110dp"
            android:layout_weight="1"
            android:text="@string/button1"
            android:onClick="button1OnClick"/>
                    <Button 
                    android:id="@+id/button2"
            android:layout_height="wrap_content"
            android:layout_width="110dp"
            android:layout_weight="1"
            android:text="@string/button2"
                    android:onClick="button1OnClick2"/>

MainActivity.java

public class Click extends Activity {
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main.xml);
        final Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // open up screen 2? do i use intent??
        }
    });
}

}

activity_main2.xml

<Button 
            android:id="@+id/button1"
            android:layout_height="wrap_content"
            android:layout_width="110dp"
            android:layout_weight="1"
            android:text="@string/button1"
            android:onClick="button1OnClick"/>
                    <Button 
                    android:id="@+id/button2"
            android:layout_height="wrap_content"
            android:layout_width="110dp"
            android:layout_weight="1"
            android:text="@string/button2"
                    android:onClick="button1OnClick2"/>

MainActivity2.java

public class Click extends Activity {
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main2.xml);
        final Button button = (Button) findViewById(R.id.button2);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // open up screen 3?  
        }
    });
}

}

screen-1和screen-2将共享同一组按钮。屏幕3将显示哪个顺序,以及按下了哪些按钮。

2 个答案:

答案 0 :(得分:2)

您需要了解如何通过意图传递数据和参数。

看看这个:

How do I pass data between Activities in Android application?

答案 1 :(得分:0)

在开始下一个活动时,您会在意图中传递该信息。

例如,在您的protected void onCreate(Bundle savedInstanceState)中,您可以执行以下操作:

Bundle extras = getIntent().getExtras();
if (extras != null) {
   // test for the arg you passed in and extract value eg
   String foostr = extras.getString(FOO_STRING);
   int fooint = extras.getInt(FOO_INT);
}

并且在开始活动的来电者中

Intent intent = new Intent(this, Screen-2.class);
intent.putExtra(FOO_INT,myInt);
intent.putExtra(FOO_STRING,myString);
startActivity(intent);