如何创建Horizo​​ntalListView?

时间:2015-04-16 05:49:57

标签: java c# android xamarin xamarin.android

我必须创建一个Horizontallistview,但我不知道从哪里开始我尝试进行google搜索但是我找不到任何有关xamarin的人有没有任何想法?一个是应该有自定义行布局

编辑:

好的我找到了这个教程,但代码是java,我必须将其转换为c#

http://www.dev-smart.com/archives/34

第一个问题是Horizo​​ntalListview扩展了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;
        }

    };

}

3 个答案:

答案 0 :(得分:1)

您可以查看此ListView教程here

答案 1 :(得分:0)

结帐twoway-view。在twoway-view上小tutorial

答案 2 :(得分:0)

将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小部件。