2017-01-08 12 views
0

私は、このようなようにカスタムAdapterを用いて充填TextViewとアイテムごとProgressBarが含まListViewを持っている:変更進捗バー個別

String[] actions = new String[] { 
     "Stretch", "Walk", 
     "Drink water", "Eat fruit(s)" }; 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    final RoutineArrayAdapter arrayAdapter = 
      new RoutineArrayAdapter(getActivity(), actions); 
    setListAdapter(arrayAdapter);  
} 

public class RoutineArrayAdapter extends ArrayAdapter<String> { 
    private final Context context; 
    private final String[] values; 

    public RoutineArrayAdapter(Context context, String[] values) { 
     super(context, -1, values); 
     this.context = context; 
     this.values = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View rowView = inflater.inflate(R.layout.routine_list_layout, parent, false); 
     TextView textView = (TextView) rowView.findViewById(R.id.action); 
     textView.setText(values[position]); 

     return rowView; 
    } 
} 

しかし、各ProgressBarはに関連したテキストによって異なりますそれ。

ProgressBar(サイズ、色、進捗率など)を個別に、プログラムによって変更するにはどうすればよいですか?

+0

にアクセスしたことと同じようgetViewメソッド内でこのプログレスバー(..)を取得することができます。データを変更するたびに、ListViewを更新するadapter.notifyDataSetChange()を呼び出します。私はリストビューについてのブログを持っています: programandroidlistview.blogspot.com、それは助けるかもしれません! –

答えて

0
ProgressBar progressBar = (ProgressBar) rowView.findViewById(R.id.progress_bar); 

あなたはあなたがあなた自身のデータクラスを設計し、ArrayListの中にそれを置く、その後、ArrayAdapterにそれを渡す必要があるのTextView

+0

これで、リスト内のすべてのプログレスバーの変更が設定されませんか?私はいつでも個別にアクセスできますか?気にしない、私はおそらく位置パラメータを使用することができます:)。私はできる限り、あなたの答えを受け入れます。 –

+0

進捗バーをアダプターから個別に更新する方法はありますか?ユーザーがその1つをクリックすると、その値は+1に設定されます。 –

+0

getView(..)メソッドがlistviewのすべての行に対して呼び出されます。 position = 0の場合、probabilitiesbar.setVisibility(View.VISIBLE)のような可視性を設定すると、最初のプログレスバーのみが表示されます –

関連する問題