Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android獲得上一個activity的返回值來設定當前按鈕的可按性

android獲得上一個activity的返回值來設定當前按鈕的可按性

編輯:關於Android編程

每次想去轉載別人的文章就不用自己寫了,好想這樣省事,但是路途就是那麼的艱辛,每次看別人的博客然後自己做時會遇到各種各樣的問題,人家的博客就那麼幾個步驟,然而我照著做時就會遇到奇葩問題,,哎,現在想起了曲婉婷的一首歌《沒有什麼不同》的歌詞盡管痛的苦的沒說的,但哪有一路走來都是順風的,只要為了夢想不服輸,再苦也不停止腳步。還是自己總結一下把!!


首先我為以前做都的項目的app新增加了個按鈕,要求這個按鈕在沒獲得上一個activity返回過來的值前不能按,這樣我就找到了方法,就是使用startActivityForResult方法來獲取上一個頁面的返回值,然後將這個值賦值給變量中,在頁面中設置switch判斷這個變量的值,以此來給按鈕的可按性進行設置,同時可以設置其他的內容。


關於startActivityForResult的講解我就不寫啦,參考一下別人的,感覺寫的不錯,這是鏈接地址 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html



實現過程中遇到的問題:

(1)當前頁面不能獲得上一個頁面的返回值,得到的data一直報錯,說是null,每次在startActivityForResult否就開始調用了回調方法,得到的intent為null,然後才進入跳轉的頁面,這讓我頭疼了,於是我在各個地方加了Log看輸出,無奈上網找解決辦法,終於找到了方法:

例如:Activity1 中有onActivityResult 方法 ,在Activity2 中有setResult 方法 ,Activity2 關閉後 應該觸發Activity1的 onActivityResult 的方法的,但是我manifest 文件中activity2的android:launchMode="singleTask" ,使Activity變成單例模式 ,然後Activity1的onActivityResult 就無法觸發了。把android:launchMode="singleTask" 改成android:launchMode="singleTop" 就可以了 。


然後就終於可以了!!好艱難。

(2)在設置按鈕的可點擊性時也遇到了困難,先找到控件,然後setClickable(false),發現沒用。。。。後來上網找方法發現寫在了setOnClickListener前面,這就使得前面的設置無效了,因為在setOnClickListener中有一段代碼

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

然後改到後面就好了。




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved