これは、保持しているオブジェクトのArrayAdapter
呼び出しの通常の実装によりtoString()
、確実に表示できるようになるためです。
はArrayAdapter
すでにTextView
s を使用してデータを表示しているため、アダプタを に変更してArrayAdapter<String>
から、表示する文字列を追加することをお勧めします。
dizi = new ArrayAdapter<String>(this, R.layout.asd);
list.setAdapter(dizi);
dizi.add("txt");
dizi.notifyDataSetChanged();
レイアウトを変更したい場合は、メソッドを拡張ArrayAdapter
してオーバーライドしますgetView()
。このチュートリアルでは、もう少し詳しく説明します。
いくつかの を実装するofにArrayAdapter
裏打ちされたの小さな例:List
String
Spannable
public class ExampleAdapter extends ArrayAdapter<String> {
LayoutInflater inflater;
int resId;
int layoutId;
public ExampleAdapter(Context context,int layoutId, int textViewResourceId,
List<String> objects) {
super(context, layoutId, textViewResourceId, objects);
this.inflater = LayoutInflater.from(context);
this.layoutId = layoutId;
this.resId = textViewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
convertView = inflater.inflate(layoutId, parent,false);
String text = getItem(position);
Spannable s = Spannable.Factory.getInstance().newSpannable(text);
s.setSpan(new ForegroundColorSpan(Color.RED), 0, text.length()/2, 0);
s.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, text.length()/2, 0);
s.setSpan(new ForegroundColorSpan(Color.DKGRAY), text.length()/2, text.length(), 0);
s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), text.length()/2, text.length(), 0);
((TextView)convertView.findViewById(resId)).setText(s, TextView.BufferType.SPANNABLE);
return convertView;
}
}
結果:
そのインスタンスを作成するには (アクティビティからこれを行っていると仮定します)、私がしたこと:
ArrayList <String> items = new ArrayList <String> ();
items.add ("Array Adapter");
ExampleAdapter dizi = new ExampleAdapter (YourActivity.this,android.R.layout.simple_list_item_1,android.R.id.text1,items);
list.setAdapter(dizi);
dizi.add ("your text");
dizi.notifyDataSetChanged();