我必须创建一个Horizontallistview,但是我不知道从哪里开始,我试着做了一个google搜索,但是我找不到任何关于xamarin的东西,有人有什么想法吗?其中之一是应该有一个自定义的行布局
编辑:
好的,我找到了这个教程,但是代码是java的,我必须把它转换成c#。
http://www.dev-smart.com/archives/34
第一个问题是HorizontalListview扩展了Activity,但是我不得不子类化,我该怎么做呢?
public class HorizontalListViewDemo extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listviewdemo);
HorizontialListView listview = (HorizontialListView) findViewById(R.id.listview);
listview.setAdapter(mAdapter);
}
private static String[] dataObjects = new String[]{ "Text #1",
"Text #2",
"Text #3" };
private BaseAdapter mAdapter = new BaseAdapter() {
public override int getCount() {
return dataObjects.length;
}
public override Object getItem(int position) {
return null;
}
public override long getItemId(int position) {
return 0;
}
public override View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
TextView title = (TextView) retval.findViewById(R.id.title);
title.setText(dataObjects[position]);
return retval;
}
};
}发布于 2015-04-16 14:09:39
您可以在here上浏览此ListView教程
发布于 2015-04-16 14:27:10
查看twoway-view。双向视图上的小tutorial。
发布于 2015-04-16 16:34:06
将Java代码移植到C#并不难。大多数情况下,您可以尝试将方法的第一个字母写成大写。super就变成了base。Java不知道属性,这就是为什么SetFoo()和/或GetFoo()会成为C#中的属性Foo。R必须为Resource。
在C#中,您可以使用":“作为子类,因此第一部分将如下所示。
public class HorizontalListViewDemo : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.listviewdemo);
//this is possible
HorizontialListView listview = (HorizontialListView) FindViewById(Resource.Id.listview);
//but this is also a way to go
HorizontialListView listview = FindViewById<HorizontialListView>(Resource.Id.listview);
listview.Adapter = mAdapter;
...
}
}另一种解决方案可以是ViewPager小部件。
https://stackoverflow.com/questions/29666320
复制相似问题