2011-10-13 2 views
0

내가 지금 가지고있는 항목은 Audience, Topics 선택 및 Interviewing 전략의 3 가지 항목이있는 listView입니다. 경로에 관련된 항목 이름이있는 URL을 열 수있는 문자열로 이러한 항목을 저장할 수 있지만 경로가 목록보기 항목에있는 항목 이름과 다른 항목 이름을 가질 때 문제가 발생합니다. 우리는 Audience, Choosing_topics 및 Interviewing을 그들의 이름으로 사용합니다. url이나 listViewItem의 이름을 변경하지 않고이 충돌을 이름으로 처리하는 방법은 무엇입니까? 다른 문자열 배열을 참조하여 첫 번째 문자열 배열의 값을 비교하여 새 배열의 연관된 항목을 검색해야합니까? 다음은 현재 가지고있는 내용입니다.목록 어댑터 표시 텍스트 대 저장된 텍스트

setListAdapter (new ArrayAdapter (this, R.layout.list_item, GREATESTHITS)); ListView lv = getListView(); lv.setTextFilterEnabled (true);

lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      String text = (String) ((TextView)view).getText(); 
      ((GlobalVariables)getApplication()).setGlobalVariable(text); 
    String str = DownloadText("http://www.jmu.edu/uwc/" + text + ".html"); 



static final String[] GREATESTHITS = new String[] {"Audience", "Choosing topics", "Interviewing Strategies"}; 

답변

0

나는 이것을 처리하는 가장 좋은 방법은 객체를 사용하는 것이라고 말하고 싶습니다. GREATESTHITS에 각 문자열에 대한 모델을 만듭니다. 그런 다음 원하는 URL이나 다른 항목을 추가 할 수 있습니다.

작성한 후 ArrayAdapter<YourTypeHere>을 작성하고 ListView에 방금 작성한 어댑터를 설정할 수 있습니다. 당신이 사용할 수있는 ItemClickListener에 그 후

: 거기

YourTypeHere item = (YourTypeHere) parent.getItemAtPosition(position); 

당신은 어레이의 객체가 있고, 당신은 당신이 그 객체에 설정 한 모든 속성에 액세스 할 수 있습니다.

이것은 3 개 항목에 약간 과소비로 보입니다.하지만 갈 수있는 올바른 방법입니다.

쉬운 접근 방법으로 HashMap<String, String> urlNames을 설정하고 각 텍스트와 해시를 상대 URL로 추가 할 수 있습니다. 그 후에는 청취자에게 할 수 있습니다.

String text = (String) ((TextView)view).getText(); 
     ((GlobalVariables)getApplication()).setGlobalVariable(text); 
String str = DownloadText("http://www.jmu.edu/uwc/" + urlNames.get(text) + ".html"); 
관련 문제