ListView
インデックスのようなものを開発しようとしています。私の場合、リスト、チャプター、サブチャプター、子の 3 つのレベルがあります。3 つのレベルを正常に実装しました。
3つのリストすべてで3つの異なる色を変更したい。
試した:
3レベルの消耗品リストビューを試しましたが、達成できません。
だから私はListviewを単一の配列でより動的に試しました..
getviewメソッドでlistviewのリストカラーを変更したい
これは、サブチャプターをリストに追加するための私の getview() です:
for (int i = listsubchapt.size() - 1; i >= 0; i--) {
Mainarray.add(pos + 1, listsubchapt.get(i));
Mainarrayid.add(pos + 1, listsubchaptid.get(i));
//System.out.println("mainarraywithsub==++ " + Mainarray);
ArrayAdapter<String> adapter = (new ArrayAdapter<String>(
IndexChapter.this, R.layout.singlerow,
R.id.textView1, Mainarray){@Override
public View getView(int position,
View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater)getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.singlerow, null);
for(int i=0;i<Mainarray.size();i++){
String sample=Mainarray.get(i);
String[] items = sample.split(":");
if (items.length == 1) {
TextView txt = ((TextView) convertView.findViewById(R.id.textView1));
txt.setBackgroundColor(Color.CYAN);
}else if(items.length == 2){
TextView txt = ((TextView) convertView.findViewById(R.id.textView1));
txt.setBackgroundColor(Color.BLUE);
}else if(items.length == 3){
TextView txt = ((TextView) convertView.findViewById(R.id.textView1));
txt.setBackgroundColor(Color.GRAY);
}else{
TextView txt = ((TextView) convertView.findViewById(R.id.textView1));
txt.setBackgroundColor(Color.CYAN);
}
}
return super.getView(position, convertView, parent);
}});
clientdetailslist.setAdapter(adapter);
clientdetailslist.setSelection(pos-1);
adapter.notifyDataSetChanged();
}
編集 :
length=1 ブロックに移動し、すべての値をシアン色に変更します。