2011年6月24日金曜日

カスタムダイアログ2

カスタムダイアログ の記事でコメントがあったのでボタンが押されたときの動作を書いてみました。
 
ボタンが押されたらテキストを変更します。


package com.custumdaialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;

public class CustumDaialogActivity extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // レイアウトの呼び出し
  LayoutInflater factory = LayoutInflater.from(this);
  final View inputView = factory.inflate(R.layout.about, null);

  // ダイアログのオブジェクト(dlg) 生成
  AlertDialog.Builder dlg = new AlertDialog.Builder(this);

  // ダイアログにタイトルを指定
  dlg.setTitle("タイトル");

  // カスタムレイアウトの表示
  dlg.setView(inputView);

  // アラートダイアログのポジティブボタンがクリックされた時に呼び出されるコールバックリスナーを登録します
  dlg.setPositiveButton("ポジティブ", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
   }
  });

  // ダイアログを表示
  dlg.show();
 }
  public void SetButtonOnClick(View v) {
    TextView message;
    message = (TextView)this.findViewById(R.id.textView1);
    message.setText("新しいテキスト");
   }
}
about.xmlのソース
<linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
    <linearlayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
        <button android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="SetButtonOnClick" android:text="テキスト変更"></button>
        <button android:id="@+id/button2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button"></button>
    </linearlayout>
</linearlayout> 

main.xmlのソース
<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
    <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello">
    <textview android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="TextView"></textview>
</textview></linearlayout> 

関連記事

2 件のコメント:

  1. 参考にさせて頂いてます。
    ダイアログ上のボタンクリック時にダイアログ上のテキストを操作する事は出来ないのでしょうか?
    AlertDialogではなくDialogでないと無理ですかね。

    返信削除
  2. カスタムダイアログ1で追加されているボタン1とかボタン2をリスナー登録したいのですが出来ないのでしょうか?

    返信削除