2014-03-27 43 views
1

我所定義的廣播接收機作爲一個內部類獲取一個對象。而我wan't獲得從接收器到外部類的對象,突出部分是這樣的:機器人:從一個內部類

class External { 
public object ; 
class Inner { 
object = something ; 
getObject() { return object; } 
}//end Inner class 
method(){ 
Inner inn = new Inner(); 
inn.getObject(); //here i would like to get the object from inner class 
} 
} 

但doesent工作對我來說,我剛開空對象,這是我真正的代碼:

public class Wifi extends Activity implements OnClickListener{ 
/** Called when the activity is first created. */ 
WifiManager wifi; 
Button  enab; 
String resultsString ; 
String[] myStringArray; 

public class Receiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)){ 
      List<ScanResult> results = wifi.getScanResults(); 

      resultsString = results.toString() ; 

      //Log.i("resultsString",resultsString); 
      List<WifiConfiguration> resultsConf = wifi.getConfiguredNetworks();     
     } 
    } 
      /***** I would like to get resultsString *******/ 
    public String getResult(){ 
     return resultsString ; 
    } 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_wifi); 
    ConnectivityManager cxMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE); 

    Receiver receiver = new Receiver(); 
    /***** I would like to get resultsString in this method but I'm getting a null **/ 

    registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 
    registerReceiver(receiver,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
Log.i("receiver.getResult()",receiver.getResult()+""); 
} 
} 

,這是我的logcat

03-27 12:28:51.947: I/receiver.getResult()(24524): null 

謝謝.I家裏有人會幫我:)

回答

2

試試這個..

我猜你得到的錯誤在下面一行

Log.i("receiver.getResult()",receiver.getResult()); 

可能接收機使你可以像下面這樣查看添加""+

Log.i("receiver.getResult()",""+receiver.getResult()); 

編輯:

IntentFilter intentFilter =new IntentFilter(Receiver.ACTION_TEXT_CAPITALIZED); 
intentFilter.addCategory(Intent.CATEGORY_DEFAULT); 
/* create new broadcast receiver*/ 
Receiver receiver = new Receiver(); 
registerReceiver(receiver, intentFilter); 

在接收器類增加這個

public final static String ACTION_TEXT_CAPITALIZED= "com.android.guide.exampleintentservice.intent.action.ACTION_TEXT_CAPITALIZED"; 

你可以像下面

Intent resultBroadCastIntent =new Intent(); 
resultBroadCastIntent.setAction(Receiver.ACTION_TEXT_CAPITALIZED); 
resultBroadCastIntent.setAction(ConnectivityManager.CONNECTIVITY_ACTION); 
resultBroadCastIntent.setAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 
resultBroadCastIntent.addCategory(Intent.CATEGORY_DEFAULT); 
sendBroadcast(resultBroadCastIntent); 
+0

我將修改我的問題 – Amina

+1

@Amina看到我的編輯發送信息。 – Hariharan

+0

yess一個空結果,但如何得到正確的方式對象 – Amina