안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 프로그래밍 정복 책의 15장 네트워크 예제중에
ComMgr 이라는 예제가 있습니다
그 예제 소스에서
for(NetworkInfo n : ani)
요런 루프문을 씁니다..
iterator이 구현되 있어서 이런 코드가 가능하다고 하는데요...
이 부분 코드 설명과 iterator가 뭔지...시원하게 답변 부탁드립니다..
자바에 관해서 어느정도 안다고 했는데...오늘 처음보는 이 구문으로 인해서..
허접하다는 사실을 또다시 깨닫게 되네요 ....ㅠ.ㅠ
풀 소스 입니다.;;
package com.Com.android.com;
import android.app.Activity;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.EditText;
public class ComMgr extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText result = (EditText)findViewById(R.id.result);
String sResult = " ";
ConnectivityManager mgr = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo[] ani = mgr.getAllNetworkInfo();
for(NetworkInfo n : ani)
{
sResult += (n.toString() + "\n\n");
}
NetworkInfo ni = mgr.getActiveNetworkInfo();
sResult += ("Active : \n"+ni.toString()+"\n");
result.setText(sResult);
}
}
수고하세용~
대략 아래와 같은 코드처럼 동작한다고 생각하시면 됩니다.
ani 에 올수 있는 객체는 배열 뿐 아니라 Iterable인터페이스를 구현하는 컬렉션 프레임워크도 사용 가능합니다.
enhanced for loop 로 검색해 보시면 좀다 자세한 내용을 확인할 수 있을겁니다.
NetworkInfo[] ani = mgr.getAllNetworkInfo();
NetworkInfo n = null;
for(int i=0; i<ani.length; i++){
n = ani[i];
sResult += (n.toString() + "\n\n");
}