androidは、前のアクティビティの戻り値を取得して、現在のボタンの押しやすさを設定します

誰かの記事を再投稿したいときは、自分で書く必要はありません。本当に時間を節約したいのですが、旅はとても大変です。誰かのブログを読んで自分でやるたびに、さまざまな問題が発生します。 。それで、いくつかのステップですが、私が従うと、奇妙な問題に遭遇します、ああ、今、私はそれを苦痛で言っていませんでしたが、QuWantingの曲の歌詞「NothingDifferent」を思い浮かべますが、どうやってずっと行けますか?夢のために敗北を認めない限り、どんなに頑張っても止まらない風下です。または自分で要約してください!


まず、前のプロジェクトのアプリに新しいボタンを追加しました。前のアクティビティで返された値を取得する前にボタンを押さないようにする必要があります。このようにして、startActivityForResultメソッドを使用して次のことを行う方法を見つけました。前のページを取得します。値を返し、この値を変数に割り当て、ページ内のスイッチを設定してこの変数の値を決定し、ボタンの押しやすさを設定し、その他のコンテンツも設定します。


startActivityForResultの説明については書きませんが、他の人の説明を参照してください。よく書かれていると思います。これはリンクアドレスhttp://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616です。 html



実装プロセスで発生した問題:

(1)現在のページは前のページの戻り値を取得できず、取得したデータはnullと言ってエラーを報告し続けます。startActivityForResultでコールバックメソッドが呼び出されるたびに、取得されたインテントはnullになり、ジャンプします。ページが入力されました。これは頭痛の種だったので、出力を確認するためにさまざまな場所にLogを追加しましたが、オンラインで解決策を見つけることができず、最終的に方法を見つけました。

例:Activity1にはonActivityResultメソッドがあり、Activity2にはsetResultメソッドがあります。Activity2を閉じた後、Activity1のonActivityResultメソッドをトリガーする必要がありますが、マニフェストファイルのactivity2のandroid:launchMode = "singleTask"によってActivityが作成されます。シングルトンモードになります。その後、Activity1のonActivityResultをトリガーできません。android:launchMode = "singleTask"をandroid:launchMode = "singleTop"に変更します。 


そしてついに可能になりました!難しい。

(2)ボタンのクリック可能性の設定にも問題があり、最初にコントロールを見つけ、次にsetClickable(false)を見つけたが、役に立たなかった。後で、インターネットでメソッドを見つけましたが、setOnClickListenerの前に記述されていたため、setOnClickListenerにコードが含まれているため、以前の設定が無効になりました。

    if (!isClickable()) {  
               setClickable(true);  
    }  

次に、それを後ろに変更します。




おすすめ

転載: blog.csdn.net/u012457196/article/details/38418119