[안드로이드] - setOnItemClickListener 이용한 ListView 이벤트 처리
| setOnItemClickListener 이용한 ListView 이벤트 처리
※ ListView 는 리스트 목록 중 하나를 선택하는 위젯이다
※ ListView 는 Spinner 와 달리 setOnItemClickListener 를 이용하여 이벤트 처리를 한다
※ Spinner, ListView 등 많은 데이터 처리 시 ArrayAdapter 를 이용한다
※ onItemClick 에서 position 변수로 몇번째 값이 선택됬는지를 확인할 수 있다
public class MainActivity extends AppCompatActivity {
ListView listView;
String[] datas = {"기계공학부", "자동화공학부", "전기전자통신공학부", "컴퓨터공학부", "경영학부"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("ListView + Intent Ex");
listView = (ListView)findViewById(R.id.listView);
// 리스트뷰에 데이터 넣기, 레이아웃 모양 결정
// 여기에, 어떤 레이아웃 모양 사용(만들어진 것 사용), 어떤 데이터를 삽입
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, datas);
listView.setAdapter(adapter);
// 리스트뷰 이벤트 처리 ( 리스트뷰 = setOnItemClickListener 이용 )
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override // position 으로 몇번째 것이 선택됐는지 값을 넘겨준다
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent it = new Intent(MainActivity.this, SubActivity.class); // 인텐트 처리
it.putExtra("it_listData", datas[position]);
startActivity(it);
}
});
}
}
public class SubActivity extends AppCompatActivity {
TextView textView2;
ConstraintLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
setTitle("ListView + Intent Ex");
textView2 = (TextView)findViewById(R.id.textView2);
layout = (ConstraintLayout)findViewById(R.id.layout);
Intent it3 = this.getIntent();
String var = it3.getStringExtra("it_listData");
textView2.setText(var + " 선택하셨습니다");
}
public void layoutClick(View v){
Intent it2 = new Intent(this, MainActivity.class);
this.startActivity(it2);
this.finish();
}
}
'안드로이드' 카테고리의 다른 글
[안드로이드] - SQLite select문 ListView로 출력하기 (0) | 2017.05.22 |
---|---|
[안드로이드] - SQLiteDatabase 를 이용한 DB 처리 (0) | 2017.05.19 |
[안드로이드] - setOnItemSelectedListener 이용한 Spinner 이벤트 처리 (0) | 2017.05.08 |
[안드로이드] - VideoView + MediaController 이용한 동영상 재생 (0) | 2017.05.01 |
[안드로이드] - MediaPlayer 이용한 음악 재생 (0) | 2017.05.01 |