2011-05-11 7 views
3

ListActivity를 확장하고 사용자 정의 listView를 만들었으며 각 행에는 2 개의 textview와 버튼이 있습니다. android ListView ItemClick 하위 텍스트 가져 오기

adapter = new SimpleAdapter(this, arraylist, R.layout.simplelistcustom, new String[] { "count","title"}, 
       new int[] {R.id.invisible, R.id.textView11 }); 
     setListAdapter(adapter); 

목록보기 행을 클릭

, 내가 선택한 행의 인덱스를 얻을 인덱스 를 사용하여 내가 행 자녀에게 얻을

protected void onListItemClick(ListView listView, View view, int position, long id) 
    { 
     super.onListItemClick(listView, view, position, id); 
     String selection = listView.getItemAtPosition(position).toString(); 
    } 

내가 "선택"의 표시 출력 로그 캣이 가능한이 .... PLZ 도울 수있는 방법 ....

{count=6, title=etywewetr} 

문제는 내가 내용을 분리해서 할입니다

사전에

+0

하는 내용이 saparate 싶어? –

+0

{count = 6, title = etywewetr} 두 개의 별도 TextView.I 제목의 가치를 얻고 싶습니다 및 별도로 계산 –

답변

4

getItemAtPosition 메소드가 arraylist 매개 변수에서 요소를 반환합니다. 올바른 유형으로 변환하면됩니다. 목록 <지도 < 문자열, 문자열 >> 당신의 ArrayList를 가정 할 (내가 생각하는 그것입니다) :

protected void onListItemClick(ListView listView, View view, int position, long id) 
{ 
    super.onListItemClick(listView, view, position, id); 
    Map<String, String> selection = (Map<String, String>) listView.getItemAtPosition(position); 
    String count = selection.get("count"); 
    String title = selection.get("title"); 
} 
+0

그것은 작동 ... 내가 HashMap 사용 ... 감사합니다 –

+0

위대한, 내가 도울 수있어 기뻐! –

+1

감사합니다. 나도 너의 대답을 사용했다. – Santhosh

0
static class MyViewHolder extends ViewHolder { 

     public MyViewHolder(TextView t2,TextView t1) {   

      text1 = t1; 
      text2 = t2; 
     } 
     TextView text1; 
     TextView text2; 
    } 
private class MyClickableListAdapter extends ClickableListAdapter { 
     public MyClickableListAdapter(Context context, int viewid, 
       List<MyData> objects) { 
      super(context, viewid, objects); 
      // nothing to do 
     } 

     protected void bindHolder(ViewHolder h) { 

      MyViewHolder mvh = (MyViewHolder) h; 
      MyData mo = (MyData)mvh.data;  
      mvh.text.setText(mo.text); 
      mvh.text1.setText(mo.text1); 
     }