Androidの学習をはじめて8日くらいの人の問題集

Android

複数のActivityを行き来するIntentを練習します。

Q1
色を選択してボタンを押すと画面が遷移する。その際、背景色を選択した色にすること。
backボタンで最初の画面に戻る。

[実行例]

スタート画面

ラヂオを選択してボタンを押すと、画面遷移する。
(下図はRedを選択して、ボタンを押した)

Backボタンを押すと最初の画面に戻る。

●activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:id="@+id/rg">

        <RadioButton
            android:id="@+id/rb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Red"
            tools:layout_editor_absoluteX="41dp"
            tools:layout_editor_absoluteY="53dp" />

        <RadioButton
            android:id="@+id/rb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Green" />

        <RadioButton
            android:id="@+id/rb3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Blue" />
    </RadioGroup>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:onClick="btCheck"
        android:text="Check!"
        app:layout_constraintTop_toBottomOf="@+id/rg"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent" />

</android.support.constraint.ConstraintLayout>


●MainActivity.java


import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioGroup;

public class MainActivity extends AppCompatActivity {
    private RadioGroup rg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rg=(RadioGroup)findViewById(R.id.rg);
    }
    public void btCheck(View v){
        int checkedId=rg.getCheckedRadioButtonId();
        int color= Color.WHITE;
        switch(checkedId){
            case R.id.rb1:
                color=Color.RED;
                break;
            case R.id.rb2:
                color=Color.GREEN;
                break;
            case R.id.rb3:
                color=Color.BLUE;
                break;
        }
        Intent i=new Intent(this,SubActivity.class);
        i.putExtra("color",color);
        startActivity(i);

    }

}


●activity_sub.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btBack"
        android:text="Back"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>


●SubActivity.java


import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class SubActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
        Intent i= this.getIntent();
        int color=i.getIntExtra("color", Color.WHITE);
        ConstraintLayout cl=(ConstraintLayout)findViewById(R.id.cl);
        cl.setBackgroundColor(color);
    }
    public void btBack(View v){
        this.finish();
    }
}


コメント

タイトルとURLをコピーしました