2014-10-02 3 views
0

나는 ListView을 만들고이 ListViewTextView이 있습니다.안드로이드의 ListView에서 TextView를 얻는 방법?

TextViewvalue_text입니다. 나는 viewHolder.value_text을 사용하여 다음 코드와 같은 TextView을 얻습니다.

public View getView(final int position, View view, ViewGroup parent) { 
      // TODO Auto-generated method stub 

      final ViewHolder viewHolder; 
      Log.d(TAG, "getView"); 
      if(view == null){ 
       view = mInflator.inflate(R.layout.streamid_data, null); 
       viewHolder = new ViewHolder(); 
       viewHolder.value_text = (TextView) view.findViewById(R.id.Value_text); 
       viewHolder.value_text.setText("1"); 

      }else { 
       viewHolder = (ViewHolder) view.getTag(); 
      } 
      return view; 
     } 

은 내가 thread를 사용하고 viewHolder.value_texttext을 변경하고 싶습니다. 하지만 threadvalue_text을 가져올 수없는 것으로 보입니다. runnablegetView method 외부에 있습니다.

final Runnable setList = new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      //change the text of value_text 
     } 
    }; 

은 어떻게 getView method 외부에서 TextView을받을 수 있나요; ?

+0

실행 파일이'getView' 메소드 외부에있을 수 있습니까? – AndyN

+0

@ User22791 예! – Martin

+0

@Martin'ListView'를위한'onItemClick' 메소드를 구현하거나 당신의 arraylist를위한 데이터를 얻습니다. – Piyush

답변

0

ViewHolder 변수를 전역으로 설정하십시오. 스레드에서 textview에 액세스 할 수 있습니다.

 // Global in Adapter Class 
    ViewHolder accessable_ViewHolder; 


    public View getView(final int position, View view, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     Log.d(TAG, "getView"); 
     if(view == null){ 
      view = mInflator.inflate(R.layout.streamid_data, null); 
      ViewHolder viewHolder = new ViewHolder(); 
      viewHolder.value_text = (TextView) view.findViewById(R.id.Value_text); 
      viewHolder.value_text.setText("1"); 

     }else { 
      accessable_ViewHolder= (ViewHolder) view.getTag(); 
     } 
     return view; 
    } 



// Thread 

final Runnable setList = new Runnable() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     //change the text of value_text 

     accessable_ViewHolder.value_text.setText("Value set from Thread"); 
    } 
}; 
+0

예. textview에 액세스하십시오. 그러나이 코드는 'accessable_ViewHolder'가 다른 인스턴스에 할당 될 다음 getView()로는 올바른 텍스트 뷰가 사라지게되므로 의미가 없습니다. – greenapps

관련 문제