2012-08-29 3 views
3

나는 textviews에서 빌드 된 listview 있습니다.ListView 항목 변경 텍스트 클릭

사용자가 항목 목록을 클릭하면 클릭 한 항목의 텍스트가 변경됩니다. 어떻게 할 수 있습니까?

새 항목을 추가하는 방법을 알고 있지만 텍스트를 변경하는 방법을 알고 있습니까? 어떻게해야합니까?

답변

5

AdapterView.OnItemClickListener으로이 작업을 수행 할 수 있습니다. onItemClick(AdapterView<?> parent, View view, int position, long id) 메소드를 구현하십시오.

mMyListView.setOnClickListener(new OnItemClickListener(
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    } 
)); 

다음은 view 당신이 클릭 된 항목의 TextView이며, 여기에 전달받을, 그래서 모든

((TextView)view).setText("Hey, I've just been tapped on!"); 
+0

좋아요, 감사를! – idish

7

첫째을 충분히해야한다, 당신은 OnItemClickListener 당신의 ListView에 추가해야합니다 OnItemClickListeneronItemClick 메서드에는 보기 매개 변수가 있습니다. 그것은 클릭 한 ListView의 행을 포함합니다. 해당 뷰와

, 당신은 텍스트 뷰를 가져온 다음 텍스트를 변경할 수 있습니다

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    TextView tv = (TextView) view; 
    tv.setText(...); 
} 
: 당신의 ListView 세포 만 텍스트 뷰가 포함되어있는 경우, 안전하게 직접 텍스트 뷰에 뷰를 캐스팅 할 수
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    TextView tv = (TextView) view.findViewById(R.id.your_text_view_id); 
    tv.setText(...); 
} 

2
mListView.setOnClickListener(new OnItemClickListener(
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     TextView mTextView = (TextView) view; 
     mTextView.setText("TextView was Clicked"); 
    } 
)); 
0

간단한 어댑터가있는 경우가 작동합니다

mListView.setOnClickListener(new OnItemClickListener(
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     TextView mTextView = (TextView) view; 
     mTextView.setText("TextView was Clicked"); 
    } 
)); 

하지만 텍스트 변경 당신이보기를 찾을 필요가 사용자 지정보기이있는 경우 :

mListView.setOnClickListener(new OnItemClickListener(
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     //TextView mTextView = (TextView) view; 
     //mTextView.setText("TextView was Clicked"); 
     ((TextView)(view.findViewById(R.id.description))).setText(""TextView was Clicked"); 
    } 
));