2011-11-06 5 views
0

I Main.java에 다음 코드가 있습니다업데이트 진행 막대

public class Main extends Activity implements AdapterView.OnItemClickListener,OnClickListener 
{  private ListAdapter adapter; 

    int complete; 
    ProgressBar progCompleted; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mListView = (ListView) findViewById(R.id.list); 

    adapter = new MyAdapter(this, R.layout.row, objects); 

    mListView.setAdapter(adapter); 
    mListView.setOnItemClickListener(this); 

    /* 
    * Complete rate 
    */ 
    this.complete += (int) getNumberCompleted(); 
    this.progCompleted = (ProgressBar) findViewById(R.id.ProgBar_completed); 
    this.progCompleted.setMax(100); 
    this.progCompleted.setProgress(complete); 
....... 
} 

그리고 MyAdapter.java의 : 그래서 basiclly 내가 원하는

public class MyAdapter extends ArrayAdapter<Task> { 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    rowHolder myHolder= new rowHolder(); 
    final int mposition = position; 

    View v = convertView; 

    if (v == null) { 
     v = mInflater.inflate(R.layout.row, null); 

      myHolder.check_button = (CheckBox) v.findViewById(R.id.CheckButton); 
      if(myHolder.check_button != null){ 
       myHolder.check_button.setChecked(t.isCompleted()); 

       OnClickListener l =new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         CheckBox cb = (CheckBox) v;     
              if (cb.isChecked()) 
              { 
               some task... 
              } 


        } 
       }; 

       myHolder.check_button.setOnClickListener(l); 
      } 
    } 

    return v; 
} 

는 할 수있다 CheckBox를 ListView에서 클릭하면 progressbar 상태를 업데이트합니다.

+0

확인은 무엇을 시도? 작동하지 않는 것은 무엇입니까? –

+0

그래, 고칠 필요가있는 여기 엔 아무것도 없어. '어떤 일이 ...'무엇입니까? –

+0

코드를 수정하지 않아도되지만 ProgressBar를 MyAdapter 클래스의 OnClickListener 메서드에서 업데이트해야했습니다. – Nikoi

답변

2

가장 쉬운 방법은 진행률 표시 줄을 변경하는 활동에 대한 메소드를 만드는 것입니다. 어댑터 작업을 보냈을 때 진행률 표시 줄의 새 값 매개 변수를 사용하여이 메서드를 호출합니다.

public void setProgress(int mProgressStatus){progCompleted.setProgress(mProgressStatus);} 

주 활동에 대한이 방법. MainActivity 매개 변수를 사용하여 어댑터의 생성자를 만듭니다. 그런 다음 어댑터에서이 방법을 mainActivity.setProgress(35); (귀하의 논리에 따라 다름 - "일부 작업 ..."코드 대체)이라고 부릅니다.

희망, 도움이 될 것입니다.

안부와

, 사이코

+0

대단히 감사합니다 !!! 그것이 내가 찾고 있었던 정확하게 것이다! !!! – Nikoi