0

私のアクティビティでは、ユーザーがテキストビューをクリックすると、カスタムダイアログボックスが開きます。ここで私はいくつかのホイールピッカーを設定しました。ユーザーがホイールピッカーで設定した値は、カスタムダイアログボックスにタイトルとして表示されます。ユーザーが[OK]ボタンをクリックすると、ダイアログボックスが閉じ、そのタイトルテキストをメインアクティビティのテキストビューに表示したいと思います。

アクティビティクラスで変数の初期化を設定し、ダイアログボックスでその値を設定できることを知っています。特別なことは何もありません。しかし、私は次のようにカスタムダイアログボックスを別のクラスファイルとして作成しました

bd = (TextView)findViewById(R.id.editText1);
        bd.setOnClickListener(new OnClickListener() 
        {   
            @Override
            public void onClick(View v) 
            {
                CustomizeDialog customizeDialog = new CustomizeDialog(main.this);
                customizeDialog.show();
            }
        });    

そのクラスから私のメインアクティビティクラスに値を取得する方法...

4

2 に答える 2

1

アクティビティでハンドラーを作成し、ジョブを実行するダイアログに渡します。以下のようなもの

Handler mHandler = new Handler()
{
    public void handleMessage(android.os.Message msg)
    {
        super.handleMessage(msg);

        switch (msg.what)
        {
        case 1:
            // Do some stuff
            break;
        }
    }
}

このハンドラー オブジェクトを渡す

CustomizeDialog customizeDialog = new CustomizeDialog(main.this, mHandler);
customizeDialog.show();

何らかの値を設定したい場合は、このハンドラー オブジェクトを使用して送信します

于 2011-07-27T05:06:47.613 に答える
0

私はより良い方法を見つけました。私の主な活動では、TextViewを次のように割り当てました

public static TextView bd;

次のように変数を初期化したときの CustomizeDialog クラスで

static String bdDate;

[OK] ボタンをクリックしてカスタム ダイアログを閉じると、次のように記述しました。

close.setOnClickListener(new View.OnClickListener()
         {  
            @Override
            public void onClick(View v) 
            {
                  if (v == close)
                  bdDate = wheelMenu3[getWheel(R.id.p3).getCurrentItem()];
                  main.bd.setText(bdDate);
                  dismiss();
            }
        });
于 2011-07-27T05:36:16.490 に答える