2011-11-06 79 views
0

我在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:

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; 
} 

所以basiclly我想要的是能夠當我點擊ListView中的複選框時更新進度條狀態。

+0

好的,有什麼試過?什麼不起作用? –

+0

是的,這裏沒有什麼需要修復的。什麼是'一些任務...'? –

+0

我不需要修復代碼,而是從MyAdapter類中的OnClickListener方法更新ProgressBar。 – Nikoi

回答

2

最簡單的方法是在您的活動上創建方法,這將改變您的進度條。在發送到適配器活動時 - 使用進度欄的新值參數調用此方法。

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

此方法對主要活動。 使用參數Main mainActivity爲適配器創建構造函數。 然後在你的適配器中調用這個方法mainActivity.setProgress(35);(取決於你的邏輯 - 取代你的「某個任務...」代碼)。

希望,這會幫助你。

祝你好運, Psycho

+0

非常感謝!那正是我正在尋找的! – Nikoi