このページの本文へ

前へ 1 2 3 4 5 次へ

これで作れる! Androidのアプリケーション 第5回

インテントによるアプリケーションとアクティビティの呼出し

2010年07月29日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

リスト1

package com.tyrell_replicants.sample05;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MyMainActivity extends Activity {
  /** Called when the activity is first created. */
  private TextView message;
  private EditText inputText;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    message = (TextView)this.findViewById(R.id.Message);
    inputText=(EditText)this.findViewById(R.id.InputText);
  }
  //
  // method for SetButton
  //
  public void SetButtonOnClick(View v){
    // make Intent call for SubActivity class
    Intent subactivity = new Intent(this,com.tyrell_replicants.sample05.SubActivity.class);
    // make String for pass to the Sub Activity
    String sendMessage = inputText.getText().toString();
    // Add Extra String Data to Intent
    subactivity.putExtra(this.getString(R.string.ExtraString01), sendMessage);
    // Call Intent and Get Result
    startActivityForResult(subactivity, R.id.IntentRequestGeneral);
    // Display "SubActivity" Class.......
  }
  //
  // EventListener for Intent Return with Result
  //
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
      if (requestCode == R.id.IntentRequestGeneral ){
        String returnMessage = data.getStringExtra(this.getString(R.string.ExtraString01));
        message.setText(this.getString(R.string.MainDispString)+" " +returnMessage);
        }
    } else {
      Toast.makeText(this, "onActivityResult NOT RESULT_OK", Toast.LENGTH_SHORT).show();
    }
  }
  //
  // method for webOpenButton
  //
  public void webOpen(View v){
    Uri myUri = Uri.parse(this.getString(R.string.myURL));
    Intent webIntent = new Intent(Intent.ACTION_VIEW,myUri);
    startActivity(webIntent);
  }
  //
  // method for SetDateButton
  //
  public void setDatePrefs(View v){
// Intent intent = new Intent("android.settings.DATE_SETTINGS");
      Intent intent = new Intent(Settings.ACTION_DATE_SETTINGS);
    startActivity(intent);

  }
  //
  // method for selectMusicButton
  //
  public void selectMusic(View v){
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("audio/*");
    startActivity(Intent.createChooser(intent, "Select music"));

  }
}


リスト2

package com.tyrell_replicants.sample05;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class SubActivity extends Activity {
  private EditText myEditText;
  private Intent returnIntent;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Start after intent in MyMainActivity class
    // 1st we make View
    setContentView(R.layout.sub);
    myEditText = (EditText)this.findViewById(R.id.SubEditText);
    TextView myPassedText = (TextView)this.findViewById(R.id.SubStringDisplay);
    // Get Extra String data from Intent
    String displayMessage = getIntent().getStringExtra(this.getString(R.string.ExtraString01));
    Log.d("sub",displayMessage);
    // Display String passed from MyMainActivity
    myPassedText.setText(this.getString(R.string.SubYourString)+" "+displayMessage);
    returnIntent = new Intent();
    setResult(RESULT_CANCELED, returnIntent);
  }
  //
  // Method for ReturnButton
  //
  public void returnButtonPushed(View v){
     // 1st we make Intent for retrun
    // Get String for retrun Extra data
    String returnText = myEditText.getText().toString();
    Log.d("sub",returnText);
    // And Set Extra data to returnIntent
    returnIntent.putExtra(this.getString(R.string.ExtraString01),returnText );
    // Set Intent Result code 'OK'
    setResult(RESULT_OK, returnIntent);
    // Terminate this
    finish();
  }
}


リスト3

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:id="@+id/MainVerticalLayout">
  <TextView android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:id="@+id/Message"
    android:text="@string/MainDispString"/>
    <LinearLayout android:layout_height="wrap_content"
      android:orientation="horizontal" android:layout_width="fill_parent"
      android:id="@+id/InputAreaHLayout">
      <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="@string/editNameLabel"
        android:textSize="17sp" android:id="@+id/InputLabel"></TextView>
      <EditText android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:layout_weight="1"
        android:id="@+id/InputText" android:text="@string/DefaultEditText"
        android:selectAllOnFocus="true"></EditText>
      <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="@string/NameButtonLabel"
        android:id="@+id/SetButton" android:onClick="SetButtonOnClick"></Button>
  </LinearLayout>
  <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
      android:id="@+id/WebOpenButton" android:layout_gravity="fill_vertical|center_horizontal"
    android:onClick="webOpen" android:text="@string/webOpenButtonLabel"></Button>
  <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
      android:id="@+id/SetDateButton" android:text="@string/SetDateButtonLabel"
    android:layout_gravity="center_horizontal" android:onClick="setDatePrefs"></Button>
  <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:id="@+id/SelectMusicButton" android:text="@string/SelectMusicButtonLabel"
  android:layout_gravity="center_horizontal" android:onClick="selectMusic"></Button>
</LinearLayout>


リスト4

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="wrap_content" android:orientation="vertical"
  android:layout_width="fill_parent">
  <TextView android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:id="@+id/SubStringDisplay" android:text="@string/SubYourString"></TextView>
  <EditText android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:text="@string/DefaultEditText" android:selectAllOnFocus="true"
    android:id="@+id/SubEditText"></EditText>   <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal" android:text="@string/SubButton"
    android:id="@+id/ReturnButton" android:onClick="returnButtonPushed"></Button>
</LinearLayout>

前へ 1 2 3 4 5 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン