My Blog

~岩手から発信中~

【Android】ボタン表示と画面遷移

Androidアプリの勉強ということで、ボタン表示と画面遷移について教えて頂いたので、その内容をメモとして書いていこうと思います。

ボタンの作成


まず、「/res/layout」の中にあるレイアウトファイルを開きます。

f:id:s-takumi:20131220184908p:plain

①画面下に[Graphical Layout]というタブがあるのでクリックします。

②[Button]をドラッグします。

これで以下のソースコードがこのレイアウトファイルに追加されます。

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="165dp"
    android:text="Button" />

しかし、最後の行の「android:text="Button"」で警告が出てしまいます。

「@string」を使うほうがおすすめですよと言っているので、それを使ってみます。

まず、「/res/values/strings.xml」のファイルを開きます。

ファイルを開いたら「resources」の間に以下のソースコードを追加します。

<string name="buttonname">次の画面</string>

コードを追加したら、先ほど警告がでていた行を以下のように変更します。

android:text="@string/buttonname"

これで警告が消えるはずです。

ボタンの作成は大体こんなかんじです。

画面遷移の処理


ボタンの作成が終わりましたので、次にボタンを押したら画面遷移をし、遷移した画面でボタンを押したら前の画面に戻るという処理を行っていきたいと思います。

まず、遷移先の画面を作成するためにファイルを作ります。

ファイルの作成方法はメニューにある[File]->[New]->[Other...]をクリックしていき、[Android Activity]をクリックして作成します。

これで準備が整ったので、画面遷移の処理をしていきたいと思います。

まず、「OnClickListener」インタフェースを実装するのために、「implements OnClickListener」をクラスに付け加えます。

public class MainActivity extends Activity implements OnClickListener {
...

結構書き忘れるので注意してください。

次に、「protected void onCreate」メソッドの中に以下のソースコードを追加します。

//レイアウトファイルにある「button1」というIDを「findViewById」使って見つけ、その情報を変数btnに格納
Button btn  = (Button)findViewById(R.id.button1);
//「setOnClickListener」メソッドを使って対象となるボタンがイベントを受け取れるように設定
btn.setOnClickListener(this);
Toast.makeText(this, "画面1", Toast.LENGTH_LONG).show();//画面1と表示させる

遷移確認が分かるように画面遷移後のファイルでは画面1を画面2に書き換えます。

最後に、画面遷移の処理をするために以下のソースコードをクラスに追加します。

@Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);//どのクラスを対象にするか
        startActivity(intent);//画面遷移
        finish();//画面終了
    }

画面遷移後のファイルでは「Intent intent = new Intent(MainActivity.this, SecondActivity.class)」の部分を「Intent intent = new Intent(this, MainActivity.class)」に変更し、それ以外のソースコードは上記のと同じコードにします。

これでボタンを押すことで画面遷移ができ、遷移した画面でボタンを押したら前の画面に戻ることができます。