REST 서비스를 실행하고 json을 가져 와서 listview에 배치하는 앱이 있습니다. 내 주요 활동은 ListActivity가 아니라 Activity를 확장합니다. 목록 항목을 스크롤 할 수는 있지만 선택할 수는 없습니다 (적어도 터치 만하면됩니다). findViewBYId를 통해 listview에 도착하고 SimpleAdapter를 확장하는 어댑터가 있습니다. clickable로 어댑터의 getVIew() 내부에 convertView를 설정했습니다. 그러나 이렇게하면 listView의 목록 항목을 더 이상 클릭 할 수 없습니까? 내가 잘못 했니?ListView 항목을 선택할 때 강조 표시 할 수 없습니다.
public class App extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
jobsListView = (ListView) findViewById(R.id.jobs_list);
jobsListView.setAdapter(new JobItemAdapter(jobsListView.getContext(),
jobsList,
R.layout.list_item,
new String[] {"title","location"},
new int[] {R.id.job_title, R.id.job_location}));
jobsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Log.i("jobsListView.setOnItemClickListener()"," item clicked: " + arg0.getSelectedItemPosition());
}
});
}
public class JobItemAdapter extends SimpleAdapter {
private List<HashMap<String,String>> jobsList;
public JobItemAdapter(Context context, List<HashMap<String,String>> jobs, int resource, String[] from, int[] to)
{
super(context, jobs, resource, from, to);
jobsList = jobs;
}
public View getView(int position, View convertView, ViewGroup parent){
Log.i(TAG," in JobItemAdapter getView() ");
if (convertView == null) {
//no previous views, inflate views
convertView = getLayoutInflater().inflate(R.layout.list_item, parent, false);
}
//update textviews in layout
TextView title = (TextView)convertView.findViewById(R.id.job_title);
title.setText(jobsList.get(position).get("title"));
TextView location = (TextView)convertView.findViewById(R.id.job_location);
location.setText(jobsList.get(position).get("location"));
//make the view clickable
convertView.setClickable(true);
return convertView;
}
}
}