내가 기억하고있는 것을 설명하기 위해 : 초보자 용 샘플 프로젝트는 'for '루프를 사용하여 Hello World 번호를 표시하는 것보다 번호 입력을 요구하는 것과 비슷합니다. 어댑터를 사용하여이를 수행 할 수 있습니까, 아니면 더 나은 대안을 찾아야합니까?
예, 어댑터를 사용하여이를 수행 할 수 있습니다. 하지만 기본 어댑터하지만, 사용자 정의 어댑터 아래 같은 : 당신이 볼 수 있듯이
public class MyListAdapter : Java.Lang.Object,IListAdapter
{
public int Count {
get {
//list view will show 10 lines of data
return 10;
}
}
public bool HasStableIds { get { return false; } }
public bool IsEmpty { get { return false; } }
public int ViewTypeCount { get { return 1; } }
private Context context;
private string uniqueData;
//default constructor
public MyListAdapter()
{ }
//constructor with current context and the data you want to show in your listview
public MyListAdapter(Context c,string data)
{
context = c;
uniqueData = data;
}
public bool AreAllItemsEnabled()
{
return true;
}
public void Dispose()
{
this.Dispose();
}
public Java.Lang.Object GetItem(int position)
{
throw new NotImplementedException();
}
public long GetItemId(int position)
{
return 0;
}
public int GetItemViewType(int position)
{
return 1;
}
public View GetView(int position, View convertView, ViewGroup parent)
{
View et=convertView;
if (et == null)
{
et = new TextView(context);
(et as TextView).Text = uniqueData;
}
return et;
}
public bool IsEnabled(int position)
{
return true;
}
public void RegisterDataSetObserver(DataSetObserver observer)
{
}
public void UnregisterDataSetObserver(DataSetObserver observer)
{
}
}
, 당신의 목록보기의 루프 수를 반환 Count.get
및 GetView
에서 나는 문자열 데이터를 필요 프로그래밍 TextView
을 만들어 생성자에 의해 전달됩니다.
그리고 이렇게 나는 다음과 같이 사용할 수 있습니다
public class MainActivity : Activity
{
ListView myListView;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
myListView = FindViewById<ListView>(Resource.Id.MyListView);
myListView.Adapter=new MyListAdapter(this,"this is my custom data");
}
}
감사합니다,이 깔끔한 보인다! 여러 UI 요소가있는 경우 이와 비슷한 것을 사용할 수도 있습니다. 맞습니까? 이 경우 데이터면은 컬렉션 (배열 또는 목록 등)이되며 UI에는 TextViews 또는 Button이 있습니다. – rTECH
여러 개의 UI 요소가있는 경우 재정의 된'GetView' 메소드를 변경해야합니다. [이 문서] (http://www.vogella.com/tutorials/AndroidListView/article.html#adapterown)를 참조하십시오. 그것은 'IListAdapter'를 사용하지 않았습니다. 그러나 아이디어는 같습니다. –