dialogに外からのStringを動的に入れるには?

425 views
Skip to first unread message

たけま

unread,
Apr 21, 2014, 11:43:12 AM4/21/14
to android-g...@googlegroups.com
AlertDialog.Builderクラスを使います。外のメソッドで取得したString line6を入れたいです。
下のように。

dialog.setMessage(parseJson(line6));

これ間違ってますか?

そして、その直下で、

        dialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int whichButton) {
               
            /*    label.setText("テキストダイアログ:" +
                                    editText.getText().toString() +
                                    "が入力されました。");*/
                //dialog.getString(line6);
            }
        });
        dialog.show();

しています。ボタンをおしても表示しないです。
恐縮ですがご教授ください。

Hirokazu Fukami

unread,
Apr 21, 2014, 11:48:09 AM4/21/14
to android-g...@googlegroups.com
こんばんはfkmです。

AlertDialog.BuilderのsetPositiveButton()でリスナーを設定した場合、
確か呼ばれた直後にダイアログが閉じられるので、setMessage()等を呼んでも無意味な気がします。。
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

星影

unread,
Apr 21, 2014, 12:37:19 PM4/21/14
to android-g...@googlegroups.com
星影です。

このダイアログの前後で実現したいことを
もう少し教えていただけるとアドバイス出来るかもです。

fkmさんが仰られているように
このダイアログはOKボタンを押した直後に閉じられます。


コメントアウト部分からの推測ですが…
line6の内容は、このダイアログ自体に表示するもの(setMessage()に加えて
OKボタンを押したらどこか別の場所に表示するということでしょうか?

onClick()で何らかの処理をしたあとに処理完了等のメッセージを出したいのであれば
onClick()内でToastを使用するのが良いかと思います。


そもそも
dialog.setMessage(parseJson(line6));
で、line6の内容が表示されないという意味でしょうか…?

この辺りの判断がつきませんでした。



2014年4月22日 0:48 Hirokazu Fukami <fkm...@gmail.com>:
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
Message has been deleted

たけま

unread,
Apr 21, 2014, 11:34:50 PM4/21/14
to android-g...@googlegroups.com
>そもそも
>dialog.setMessage(parseJson(line6));
>で、line6の内容が表示されないという意味でしょうか…?

はい、その通りです。
お天気アプリを作ります。起動時にJSONから取得します。

テキストビューに表示したいもの:日付、東京、晴れ、気温
ダイアログで表示したいもの:天気概況(長い文)

ダイアログを押すと天気概況を表示し、OKを押して閉じたいです。

ちなみに
private  String parseJson(String line6) メソッドでhttp取得して天気概況を
    return line6;で返してます。
でも表示されないです。汗

これで伝わりましたでしょうか?

星影

unread,
Apr 21, 2014, 11:44:25 PM4/21/14
to android-g...@googlegroups.com
setMessageの他に、setItems、setSingleChoiceItems、setSingleChoiceItems、setMultiChoiceItemメソッドなどを併用していたりしますか?

自分が以前ハマった経験ですが、この辺りのメソッドは表示領域が重なっているためなのか、同時に使用できないようです。
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=51

setMessageに固定の文言を渡しても表示されないようであれば、こちらを確認してみてください。

Sent from Mailbox


--

田代透

unread,
Apr 22, 2014, 11:31:49 AM4/22/14
to android-g...@googlegroups.com
ダイアログというのは、文字通り対話用のUIなのでダイアログを常に表示しておいてその内容を変化させるというのは変な構造のように思います。
ましてや画面の狭いスマフォで画面にドンとダイアログが出ている状態というのは使いにくいものだと思います。
レイアウトで、天気や温度を表示するエリアと、長い文章を表示するためのエリアを設けるほうが正しいように思います。

:
:
まさかとは思うのですが
TextView text = (TextView) dialog.findViewById(R.id.dialogText);
text.setText(
parseJson(line6));
dialog.show();
とかいう話ではないですよね。




2014年4月22日 12:44 星影 <unsolub...@gmail.com>:



--
--
Toru Tashiro
toru...@gmail.com
Message has been deleted

たけま

unread,
Apr 24, 2014, 2:56:44 AM4/24/14
to android-g...@googlegroups.com
setItems、setSingleChoiceItems、
setMultiChoiceItemメソッドなどは使っていません。
setMassageに固定の文言は入れる事ができています。ですので次はJSONから入れたい状況です。


丸投げと言われたらそれまでですが苦笑、一応今のソースを貼っておきます。



    // テキストダイアログの表示
    public void showTextDialog() {
        //final EditText editText=new EditText(MyTenkiActivity.this);
        AlertDialog.Builder dialog
                    = new AlertDialog.Builder(MyTenkiActivity.this);
        dialog.setTitle("東京地方の天気概況");//タイトルテキスト固定
       
        //dialog.setView(editText);
        dialog.setMessage(parseJson(line6));


        dialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int whichButton) {
               
            /*    label.setText("テキストダイアログ:" +
                                    editText.getText().toString() +
                                    "が入力されました。");*/
                dialog.getString(line6);//←getStringは赤線です。
            }
        });
        dialog.show();
    }

たけま

unread,
Apr 24, 2014, 3:10:55 AM4/24/14
to android-g...@googlegroups.com
ダイアログを一個、ボタンのように表示しています。なので、そこまで邪魔ではないかと思います。
それをを押すとJSONからの天気概況を表示したい仕様です。

toruさまの仰るようにtextViewでは、ないんですよ。取得する天気概況は長文なので、それだと画面から見切れてしまいます。
ですのでdialogで表示したいです、dialogなら見切れた文言も指でスクロールして見れますので。

田代透

unread,
Apr 24, 2014, 5:08:54 AM4/24/14
to android-g...@googlegroups.com
ScrollviewでくるんだTextViewならば見切れていてもスクロールして見れますけど



2014年4月24日 16:10 たけま <5aroa...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

たけま

unread,
Apr 29, 2014, 3:45:03 AM4/29/14
to android-g...@googlegroups.com
scrollViewで動きました。仕様も満たせましたので、ありがとうございます!

田代透

unread,
Apr 29, 2014, 9:54:14 PM4/29/14
to android-g...@googlegroups.com
無事解決されたようでよかったです。

 何かがうまくいかない時に、とある方法でできると見つけてしまうと、それ以外の方法を考えるのは難しくなったりしますが、実は結構別の方法があったりします。

 今回の問題はダイアログに~ってことではなくて、「スクロール可能なテキストフィルドが欲しい」だったわけですね。何のためにそれが必要なのかを提示することによって解決策が広がる可能性もあります。

 完成を目指して頑張ってください。



2014年4月29日 16:45 たけま <5aroa...@gmail.com>:
scrollViewで動きました。仕様も満たせましたので、ありがとうございます!

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

たけま

unread,
Apr 30, 2014, 1:12:09 AM4/30/14
to android-g...@googlegroups.com
>何のためにそれが必要なのかを提示することによって解決策が広がる可能性もあります。

勉強になります。ありがとうございます。
Reply all
Reply to author
Forward
0 new messages