한 나라의 도시 목록을 가지고 있다고 가정 해 봅시다. 사용자가 그 중 하나를 클릭하면 해당 목록 요소에 대한 자세한 정보와 함께 새 화면이 표시되기를 원합니다. 또한 해당 화면에는 다른 버튼이 있습니다 (예 : Write Review, Post Picture)특정 목록보기 항목의 세부 데이터를 보는 방법
어떻게해야합니까?
한 나라의 도시 목록을 가지고 있다고 가정 해 봅시다. 사용자가 그 중 하나를 클릭하면 해당 목록 요소에 대한 자세한 정보와 함께 새 화면이 표시되기를 원합니다. 또한 해당 화면에는 다른 버튼이 있습니다 (예 : Write Review, Post Picture)특정 목록보기 항목의 세부 데이터를 보는 방법
어떻게해야합니까?
City
클래스는 Parcelable
을 구현해야합니다. 그 toString()
메소드는 도시 이름을 반환해야합니다. (.보다는 단순히 String
으로 도시를 가진)
당신이 당신의 ListView를 채울 때, 대신 ArrayAdapter<String>
의 ArrayAdapter<City>
을 사용 (이 코드은 도시 List<City> list
에 보관되어 있다고 가정) :
City[] cities = new City[list.size()];
list.toArray(cities);
mListView = (ListView) findViewById(R.id.citylist);
mListView.setAdapter(new ArrayAdapter<City>(this,
R.layout.listitem, cities));
에서 당신의 onItemClick 핸들러가 선택한 도시를 얻을 당신이 당신의 정보 활동을 시작하는 데 사용하는 목적에 추가로 추가 : 귀하의 세부 활동에서
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a,
View v, int position, long id) {
City city = (City) a.getItemAtPosition(position);
Intent intent = new Intent(v.getContext(), DetailsActivity.class);
intent.putExtra("com.example.cities.City", city);
startActivity(intent);
}
});
을에 엑스트라에서 도시를 얻을 수 의도 :
Bundle bundle = getIntent().getExtras();
City city = bundle.getParcelable("com.example.cities.City");
지금까지 무엇을 시도 했습니까? 보이는 lika 간단한 구현 [listview] (http://developer.android.com/reference/android/widget/ListView.html) – Adinia
조금 더 열심히 생각, 그리고 내가 선택한 도시 객체를 저장할 것 내 응용 프로그램 하위 클래스, 그리고 클릭 할 때 새로운 의도를 시작할 때, 해당 액티비티는 내 애플리케이션 서브 클래스에 저장된 객체의 데이터를 사용합니다. – Cumatru